/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.custom.CustomAssertionDescriptor
 *  com.l7tech.policy.assertion.Assertion
 *  com.l7tech.policy.assertion.ext.ServiceFinder
 *  org.jetbrains.annotations.NotNull
 *  org.springframework.context.ApplicationContext
 *  org.springframework.context.ApplicationEvent
 */
package com.l7tech.server.policy.module;

import com.l7tech.gateway.common.custom.CustomAssertionDescriptor;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.ext.ServiceFinder;
import com.l7tech.server.policy.module.ModuleException;
import java.util.Set;
import org.jetbrains.annotations.NotNull;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEvent;

public interface ScannerCallbacks {
    public void publishEvent(@NotNull ApplicationEvent var1);

    public static interface CustomAssertion
    extends ScannerCallbacks {
        public void registerAssertion(@NotNull CustomAssertionDescriptor var1) throws ModuleException;

        public void unregisterAssertion(@NotNull CustomAssertionDescriptor var1);

        public ServiceFinder getServiceFinder();
    }

    public static interface ModularAssertion
    extends ScannerCallbacks {
        public void registerClusterProps(@NotNull Set<? extends Assertion> var1);

        public void registerAssertion(@NotNull Class<? extends Assertion> var1);

        public void unregisterAssertion(@NotNull Assertion var1);

        @NotNull
        public ApplicationContext getApplicationContext();

        public boolean isAssertionRegistered(@NotNull String var1);
    }
}

