type Scheme = "http" | "https"; export type EndpointTemplateInit = { /** * Endpoint string. May be: * - `host` * - `host:port` * - `https://host[:port][/path]` * - `http://host[:port][/path]` * * For basin endpoints, may include `{basin}` placeholder in hostname and/or path. */ endpoint: string; }; export declare class EndpointTemplate { readonly raw: string; readonly scheme: Scheme; readonly hostTemplate: string; readonly port: string; readonly pathTemplate: string; readonly hasBasinPlaceholder: boolean; readonly explicitPathProvided: boolean; constructor({ endpoint }: EndpointTemplateInit); /** * Resolve the template into a base URL string. * * - If `{basin}` appears in the hostname, it is substituted verbatim (basin names are validated by S2.basin()). * - If `{basin}` appears in the path/query/hash, it is substituted via `encodeURIComponent`. */ baseUrl(basin?: string): string; } export type S2EndpointsInit = { /** * Account endpoint (authority with optional scheme/port, optional path). * If no path is present, `/v1` is used. */ account?: string; /** * Basin endpoint (authority with optional scheme/port, optional path). * Supports `{basin}` placeholder anywhere. If no path is present, `/v1` is used. */ basin?: string; }; /** * Endpoint configuration for the S2 environment. * * The basin endpoint may include `{basin}` anywhere (hostname and/or path). */ export declare class S2Endpoints { readonly account: EndpointTemplate; readonly basin: EndpointTemplate; /** * When true, include `s2-basin: ` header on basin-scoped requests. * * Per project convention: enabled whenever a non-default basin endpoint is provided. */ readonly includeBasinHeader: boolean; constructor(init?: S2EndpointsInit); accountBaseUrl(): string; basinBaseUrl(basin: string): string; } export {}; //# sourceMappingURL=endpoints.d.ts.map