import type { NobjcObject } from "objc-js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { WKWebExtensionMatchPatternOptions } from "./WKWebExtensionMatchPatternOptions.js";
export declare class _WKWebExtensionMatchPattern extends _NSObject {
    static alloc(): _WKWebExtensionMatchPattern;
    static new(): _WKWebExtensionMatchPattern;
    init(): _WKWebExtensionMatchPattern;
    /**
     * @abstract Registers a custom URL scheme that can be used in match patterns. @discussion This method should be used to register any custom URL schemes used by the app for the extension base URLs, other than `webkit-extension`, or if extensions should have access to other supported URL schemes when using `<all_urls>`. @param urlScheme The custom URL scheme to register.
     */
    static registerCustomURLScheme$(urlScheme: _NSString): void;
    /** @abstract Returns a pattern object for `<all_urls>`. */
    static allURLsMatchPattern(): _WKWebExtensionMatchPattern;
    /** @abstract Returns a pattern object that has `*` for scheme, host, and path. */
    static allHostsAndSchemesMatchPattern(): _WKWebExtensionMatchPattern;
    /**
     * @abstract Returns a pattern object for the specified pattern string. @result Returns `nil` if the pattern string is invalid. @seealso initWithString:error:
     */
    static matchPatternWithString$(string_: _NSString): _WKWebExtensionMatchPattern | null;
    /**
     * @abstract Returns a pattern object for the specified scheme, host, and path strings. @result A pattern object, or `nil` if any of the strings are invalid. @seealso initWithScheme:host:path:error:
     */
    static matchPatternWithScheme$host$path$(scheme: _NSString, host: _NSString, path: _NSString): _WKWebExtensionMatchPattern | null;
    /**
     * @abstract Returns a pattern object for the specified pattern string. @param error Set to \c nil or an error instance if an error occurred. @result A pattern object, or `nil` if the pattern string is invalid and an error will be set. @seealso initWithString:
     */
    initWithString$error$(string_: _NSString, error: NobjcObject | null): _WKWebExtensionMatchPattern | null;
    /**
     * @abstract Returns a pattern object for the specified scheme, host, and path strings. @param error Set to \c nil or an error instance if an error occurred. @result A pattern object, or `nil` if any of the strings are invalid and an error will be set. @seealso initWithScheme:host:path:
     */
    initWithScheme$host$path$error$(scheme: _NSString, host: _NSString, path: _NSString, error: NobjcObject | null): _WKWebExtensionMatchPattern | null;
    /**
     * @abstract Matches the reciever pattern against the specified URL. @param url The URL to match the against the reciever pattern. @result A Boolean value indicating if pattern matches the specified URL. @seealso matchesURL:options:
     */
    matchesURL$(url: _NSURL | null): boolean;
    /**
     * @abstract Matches the reciever pattern against the specified URL with options. @param url The URL to match the against the reciever pattern. @param options The options to use while matching. @result A Boolean value indicating if pattern matches the specified URL. @seealso matchesURL:
     */
    matchesURL$options$(url: _NSURL | null, options: WKWebExtensionMatchPatternOptions): boolean;
    /**
     * @abstract Matches the receiver pattern against the specified pattern. @param pattern The pattern to match against the receiver pattern. @result A Boolean value indicating if receiver pattern matches the specified pattern. @seealso matchesPattern:options:
     */
    matchesPattern$(pattern: _WKWebExtensionMatchPattern | null): boolean;
    /**
     * @abstract Matches the receiver pattern against the specified pattern with options. @param pattern The pattern to match against the receiver pattern. @param options The options to use while matching. @result A Boolean value indicating if receiver pattern matches the specified pattern. @seealso matchesPattern:
     */
    matchesPattern$options$(pattern: _WKWebExtensionMatchPattern | null, options: WKWebExtensionMatchPatternOptions): boolean;
    /** @abstract The original pattern string. */
    string(): _NSString;
    /**
     * @abstract The scheme part of the pattern string, unless ``matchesAllURLs`` is `YES`.
     */
    scheme(): _NSString | null;
    /**
     * @abstract The host part of the pattern string, unless ``matchesAllURLs`` is `YES`.
     */
    host(): _NSString | null;
    /**
     * @abstract The path part of the pattern string, unless ``matchesAllURLs`` is `YES`.
     */
    path(): _NSString | null;
    /** @abstract If the pattern is `<all_urls>`. */
    matchesAllURLs(): boolean;
    /** @abstract If the pattern is `<all_urls>` or has `*` as the host. */
    matchesAllHosts(): boolean;
}
export interface _WKWebExtensionMatchPattern extends _NSSecureCoding, _NSCopying {
}
