import type { PartPattern, PartPatternToken, RoutePattern } from '../route-pattern.ts'; export type Variant = { readonly protocol: ProtocolVariant; readonly hostname: HostnameVariant; readonly port: string; readonly pathname: PathnameVariant; }; export declare function generateVariants(pattern: RoutePattern): ReadonlyArray; type ProtocolVariant = 'http' | 'https'; export type Param = Extract; type HostnameVariant = { readonly type: 'static'; readonly value: string; } | { readonly type: 'dynamic'; readonly params: ReadonlyArray; readonly regexp: RegExp; } | { readonly type: 'any'; }; export type PathnameVariantSegment = { readonly type: 'static'; readonly key: string; } | { readonly type: 'variable'; readonly key: string; readonly regexp: RegExp; readonly params: ReadonlyArray; } | { readonly type: 'wildcard'; readonly key: string; readonly regexp: RegExp; readonly params: ReadonlyArray; }; export type PathnameVariant = ReadonlyArray; type PartVariantToken = Exclude; type PartVariant = ReadonlyArray; /** * Expand a part pattern's optionals into the list of all concrete variants. * * Each variant is the linear token sequence you'd get by independently choosing * to include or omit every `(` `)` group. No nesting, no optional markers. * * @private */ export declare function generatePartVariants(part: PartPattern): ReadonlyArray; export {}; //# sourceMappingURL=variant.d.ts.map