import type { _NEFilterProviderConfiguration } from "./NEFilterProviderConfiguration.js";
import type { _NEFilterReport } from "./NEFilterReport.js";
import type { _NEProvider } from "./NEProvider.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { NEProviderStopReason } from "./NEProviderStopReason.js";
export declare class _NEFilterProvider extends _NEProvider {
    static alloc(): _NEFilterProvider;
    static new(): _NEFilterProvider;
    init(): _NEFilterProvider;
    /**
     * @method startFilterWithCompletionHandler: @discussion This function is called by the framework when the content filter is being started. Subclasses must override this method and perform whatever steps are necessary to start the filter. @param completionHandler A block that must be called when the process of starting the filter is complete. If the filter was started successfully, subclass implementations must pass the nil value to this block. If an error occurred while starting the filter, sublcass implementations must pass a non-nil NSError containing more details about the error.
     */
    startFilterWithCompletionHandler$(completionHandler: ((error: _NSError) => void) | null): void;
    /**
     * @method stopFilterWithReason:completionHandler: @discussion This function is called by the framework when the content filter is being stopped. Subclasses must override this method and perform whatever steps are necessary to stop the filter. @param reason An NEProviderStopReason indicating why the filter is being stopped. @param completionHandler A block that must be called when the process of stopping the filter is complete.
     */
    stopFilterWithReason$completionHandler$(reason: NEProviderStopReason, completionHandler: () => void): void;
    /**
     * @method handleReport: @discussion This function is called by the framework when the data provider extension returns a verdict with the report property set to True. Subclass implementations may override this method to handle the flow report. @param report The report being delivered.
     */
    handleReport$(report: _NEFilterReport): void;
    /**
     * @property filterConfiguration @discussion An NEContentFilterConfiguration object containing the current filter configuration. The value of this property can change during the lifetime of a filter. Filter implementations can use KVO to be notified when the configuration changes.
     */
    filterConfiguration(): _NEFilterProviderConfiguration;
}
