import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSUUID } from "../Foundation/NSUUID.js";
import type { _WKWebViewConfiguration } from "./WKWebViewConfiguration.js";
import type { _WKWebsiteDataStore } from "./WKWebsiteDataStore.js";
export declare class _WKWebExtensionControllerConfiguration extends _NSObject {
    static alloc(): _WKWebExtensionControllerConfiguration;
    static new(): _WKWebExtensionControllerConfiguration;
    init(): _WKWebExtensionControllerConfiguration;
    /**
     * Returns a new default configuration that is persistent and not unique. If a ``WKWebExtensionController`` is associated with a persistent configuration, data will be written to the file system in a common location. When using multiple extension controllers, each controller should use a unique configuration to avoid conflicts. configurationWithIdentifier:
     */
    static defaultConfiguration(): _WKWebExtensionControllerConfiguration;
    /**
     * Returns a new non-persistent configuration. If a ``WKWebExtensionController`` is associated with a non-persistent configuration, no data will be written to the file system. This is useful for extensions in "private browsing" situations.
     */
    static nonPersistentConfiguration(): _WKWebExtensionControllerConfiguration;
    /**
     * Returns a new configuration that is persistent and unique for the specified identifier. If a ``WKWebExtensionController`` is associated with a unique persistent configuration, data will be written to the file system in a unique location based on the specified identifier. defaultConfiguration
     */
    static configurationWithIdentifier$(identifier: _NSUUID): _WKWebExtensionControllerConfiguration;
    /**
     * A Boolean value indicating if this context will write data to the the file system.
     */
    persistent(): boolean;
    /**
     * The unique identifier used for persistent configuration storage, or `nil` when it is the default or not persistent.
     */
    identifier(): _NSUUID | null;
    /**
     * The web view configuration to be used as a basis for configuring web views in extension contexts.
     */
    webViewConfiguration(): _WKWebViewConfiguration;
    setWebViewConfiguration$(value: _WKWebViewConfiguration): void;
    /**
     * The default data store for website data and cookie access in extension contexts. This property sets the primary data store for managing website data, including cookies, which extensions can access, subject to the granted permissions within the extension contexts. Defaults to ``WKWebsiteDataStore.defaultDataStore``. In addition to this data store, extensions can also access other data stores, such as non-persistent ones, for any open tabs.
     */
    defaultWebsiteDataStore(): _WKWebsiteDataStore;
    setDefaultWebsiteDataStore$(value: _WKWebsiteDataStore): void;
}
export interface _WKWebExtensionControllerConfiguration extends _NSSecureCoding, _NSCopying {
}
