import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _WKContentRuleList } from "./WKContentRuleList.js";
import type { _WKContentWorld } from "./WKContentWorld.js";
import type { _WKScriptMessageHandler } from "./WKScriptMessageHandler.js";
import type { _WKScriptMessageHandlerWithReply } from "./WKScriptMessageHandlerWithReply.js";
import type { _WKUserScript } from "./WKUserScript.js";
export declare class _WKUserContentController extends _NSObject {
    static alloc(): _WKUserContentController;
    static new(): _WKUserContentController;
    init(): _WKUserContentController;
    /** Adds a user script. The user script to add. */
    addUserScript$(userScript: _WKUserScript): void;
    /** Removes all associated user scripts. */
    removeAllUserScripts(): void;
    /**
     * Adds a script message handler. The script message handler to add. The WKContentWorld in which to add the script message handler. The name of the message handler. Adding a script message handler adds a function window.webkit.messageHandlers. <name >.postMessage( <messageBody >) to all frames, available in the given WKContentWorld. The name argument must be a non-empty string. Each WKContentWorld can have any number of script message handlers, but only one per unique name. Once any script message handler has been added to a WKContentWorld for a given name, it is an error to add another script message handler to that WKContentWorld for that same name without first removing the previous script message handler. The above restriction applies to any type of script message handler - WKScriptMessageHandler and WKScriptMessageHandlerWithReply objects will conflict with each other if you try to add them to the same WKContentWorld with the same name.
     */
    addScriptMessageHandler$contentWorld$name$(scriptMessageHandler: _WKScriptMessageHandler, world: _WKContentWorld, name: _NSString): void;
    /**
     * Adds a script message handler. The script message handler to add. The WKContentWorld in which to add the script message handler. The name of the message handler. Adding a script message handler adds a function window.webkit.messageHandlers. <name >.postMessage( <messageBody >) to all frames, available in the given WKContentWorld. The name argument must be a non-empty string. Each WKContentWorld can have any number of script message handlers, but only one per unique name. Once any script message handler has been added to a WKContentWorld for a given name, it is an error to add another script message handler to that WKContentWorld for that same name without first removing the previous script message handler. The above restriction applies to any type of script message handler - WKScriptMessageHandlerWithReply and WKScriptMessageHandler objects will conflict with each other if you try to add them to the same WKContentWorld with the same name. Refer to the WKScriptMessageHandlerWithReply documentation for examples of how it is more flexible than WKScriptMessageHandler.
     */
    addScriptMessageHandlerWithReply$contentWorld$name$(scriptMessageHandlerWithReply: _WKScriptMessageHandlerWithReply, contentWorld: _WKContentWorld, name: _NSString): void;
    /**
     * Adds a script message handler to the main world used by page content itself. The script message handler to add. The name of the message handler. Calling this method is equivalent to calling addScriptMessageHandler:contentWorld:name: with [WKContentWorld pageWorld] as the contentWorld argument.
     */
    addScriptMessageHandler$name$(scriptMessageHandler: _WKScriptMessageHandler, name: _NSString): void;
    /**
     * Removes a script message handler. The name of the message handler to remove. The WKContentWorld from which to remove the script message handler.
     */
    removeScriptMessageHandlerForName$contentWorld$(name: _NSString, contentWorld: _WKContentWorld): void;
    /**
     * Removes a script message handler. The name of the message handler to remove. Calling this method is equivalent to calling removeScriptMessageHandlerForName:contentWorld: with [WKContentWorld pageWorld] as the contentWorld argument.
     */
    removeScriptMessageHandlerForName$(name: _NSString): void;
    /**
     * Removes all script message handlers from a given WKContentWorld. The WKContentWorld from which to remove all script message handlers.
     */
    removeAllScriptMessageHandlersFromContentWorld$(contentWorld: _WKContentWorld): void;
    /** Removes all associated script message handlers. */
    removeAllScriptMessageHandlers(): void;
    /** Adds a content rule list. The content rule list to add. */
    addContentRuleList$(contentRuleList: _WKContentRuleList): void;
    /** Removes a content rule list. The content rule list to remove. */
    removeContentRuleList$(contentRuleList: _WKContentRuleList): void;
    /** Removes all associated content rule lists. */
    removeAllContentRuleLists(): void;
    /** The user scripts associated with this user content controller. */
    userScripts(): _NSArray;
}
export interface _WKUserContentController extends _NSSecureCoding {
}
