import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSDate } from "../Foundation/NSDate.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSSet } from "../Foundation/NSSet.js";
import type { _NSUUID } from "../Foundation/NSUUID.js";
import type { _WKHTTPCookieStore } from "./WKHTTPCookieStore.js";
export declare class _WKWebsiteDataStore extends _NSObject {
    static alloc(): _WKWebsiteDataStore;
    static new(): _WKWebsiteDataStore;
    init(): _WKWebsiteDataStore;
    /** Returns the default data store. */
    static defaultDataStore(): _WKWebsiteDataStore;
    /**
     * Returns a new non-persistent data store. If a WKWebView is associated with a non-persistent data store, no data will be written to the file system. This is useful for implementing "private browsing" in a web view.
     */
    static nonPersistentDataStore(): _WKWebsiteDataStore;
    /** Returns a set of all available website data types. */
    static allWebsiteDataTypes(): _NSSet;
    /**
     * Get a persistent data store. An identifier that is used to uniquely identify the data store. If a data store with this identifier does not exist yet, it will be created. Throws exception if identifier is 0.
     */
    static dataStoreForIdentifier$(identifier: _NSUUID): _WKWebsiteDataStore;
    /**
     * Delete a persistent data store. An identifier that is used to uniquely identify the data store. A block to invoke with optional error when the operation completes. This should be called when the data store is not used any more. Returns error if removal fails to complete. WKWebView using the data store must be released before removal.
     */
    static removeDataStoreForIdentifier$completionHandler$(identifier: _NSUUID, completionHandler: ((arg0: _NSError) => NobjcObject) | null): void;
    /**
     * Fetch all data stores identifiers. A block to invoke with an array of identifiers when the operation completes. Default or non-persistent data store do not have an identifier.
     */
    static fetchAllDataStoreIdentifiers$(completionHandler: (arg0: _NSArray) => NobjcObject): void;
    /**
     * Fetches data records containing the given website data types. The website data types to fetch records for. A block to invoke when the data records have been fetched.
     */
    fetchDataRecordsOfTypes$completionHandler$(dataTypes: _NSSet, completionHandler: (arg0: _NSArray) => NobjcObject): void;
    /**
     * Removes website data of the given types for the given data records. The website data types that should be removed. The website data records to delete website data for. A block to invoke when the website data for the records has been removed.
     */
    removeDataOfTypes$forDataRecords$completionHandler$(dataTypes: _NSSet, dataRecords: _NSArray, completionHandler: () => NobjcObject): void;
    /**
     * Removes all website data of the given types that has been modified since the given date. The website data types that should be removed. A date. All website data modified after this date will be removed. A block to invoke when the website data has been removed.
     */
    removeDataOfTypes$modifiedSince$completionHandler$(dataTypes: _NSSet, date: _NSDate, completionHandler: () => NobjcObject): void;
    /**
     * Called when the client wants to fetch WKWebsiteDataStore data. The set of WKWebsiteDataStore data types whose data the client wants to fetch. The completion handler that should be invoked with the retrieved data and possibly an error. The retrieved data will be a serialized blob. If an error occurred, the retrieved data will be nil. An error may occur if a requested data type is not supported or if the data cannot be retrieved for some other reason (such as a crash).
     */
    fetchDataOfTypes$completionHandler$(dataTypes: _NSSet, completionHandler: ((data: _NSData, error: _NSError) => NobjcObject) | null): void;
    /**
     * Called when the client wants to restore WKWebsiteDataStore data. The serialized blob containing the data that the client wants to restore. The completion handler that may be invoked with an error if the data is in an invalid format or if the data cannot be restored for some other reason (such as a crash).
     */
    restoreData$completionHandler$(data: _NSData, completionHandler: ((error: _NSError) => NobjcObject) | null): void;
    /** Whether the data store is persistent or not. */
    persistent(): boolean;
    /** Returns the cookie store representing HTTP cookies in this website data store. */
    httpCookieStore(): _WKHTTPCookieStore;
    /**
     * Get identifier for a data store. Returns nil for default and non-persistent data store .
     */
    identifier(): _NSUUID | null;
    /**
     * @abstract Gets or sets the proxy configurations to be used to override networking in all WKWebViews that use this WKWebsiteDataStore. @discussion Changing the proxy configurations might interupt current networking operations in any WKWebView that use this WKWebsiteDataStore, so it is encouraged to finish setting the proxy configurations before starting any page loads.
     */
    proxyConfigurations(): _NSArray;
    setProxyConfigurations$(value: _NSArray): void;
}
export interface _WKWebsiteDataStore extends _NSSecureCoding {
}
