import * as plugins from '../plugins.js'; export type TWebPushEndpointPolicyErrorCode = 'ENDPOINT_URL_INVALID' | 'ENDPOINT_SCHEME_INVALID' | 'ENDPOINT_PORT_INVALID' | 'ENDPOINT_AUTHORITY_INVALID' | 'ENDPOINT_FRAGMENT_INVALID' | 'ENDPOINT_IP_LITERAL_FORBIDDEN' | 'ENDPOINT_DNS_EMPTY' | 'ENDPOINT_DNS_UNSAFE'; export declare class WebPushEndpointPolicyError extends Error { readonly code: TWebPushEndpointPolicyErrorCode; constructor(code: TWebPushEndpointPolicyErrorCode); } export interface IWebPushDnsAddress { address: string; family: number; } export type TWebPushDnsLookup = (hostnameArg: string) => Promise; export interface IWebPushResolvedEndpoint { url: URL; hostname: string; address: string; family: 4 | 6; } export declare function isGloballyRoutableWebPushAddress(addressArg: string): boolean; export declare function parseWebPushEndpoint(endpointArg: string): URL; export declare function resolveWebPushEndpoint(endpointArg: string, lookupArg?: TWebPushDnsLookup): Promise; export declare function createPinnedWebPushAgent(resolvedArg: IWebPushResolvedEndpoint): InstanceType;