export interface ProjectionProfileExtensionInput { readonly coordinate: string; readonly digest: string; } export interface ProjectionProfileInput { readonly id: string; readonly language: string; readonly provider: string; readonly extensions: readonly ProjectionProfileExtensionInput[]; readonly options?: Readonly> | undefined; } export interface ProjectionRouteInput { readonly profileId: string; readonly include: readonly string[]; readonly exclude?: readonly string[] | undefined; } export interface ProjectionExtensionFallbackInput { readonly language: string; readonly profileId: string; readonly fileExtensions: readonly string[]; } export interface ProjectionProfileResolverConfig { readonly profiles: readonly ProjectionProfileInput[]; readonly routes?: readonly ProjectionRouteInput[] | undefined; readonly extensionFallbacks?: readonly ProjectionExtensionFallbackInput[] | undefined; } export interface ProjectionProfileExtension { readonly coordinate: string; readonly digest: string; } export interface ResolvedAuthorityContext { readonly language: string; readonly profileId: string; readonly profileDigest: string; readonly routingDigest?: string | undefined; readonly provider: string; readonly extensions: readonly ProjectionProfileExtension[]; readonly resolutionSource: "explicit" | "project_config" | "extension_fallback"; } export type ProjectionRoutingFailureKind = "no_provider" | "unknown_profile" | "ambiguous_profile" | "profile_config_invalid"; export interface ProjectionRoutingFailure { readonly kind: ProjectionRoutingFailureKind; readonly message: string; readonly path?: string | undefined; readonly profileId?: string | undefined; readonly matchingProfileIds?: readonly string[] | undefined; } export type ProjectionAuthorityResolution = { readonly state: "resolved"; readonly authority: ResolvedAuthorityContext; } | { readonly state: "failed"; readonly failure: ProjectionRoutingFailure; }; export interface ProjectionProfileResolver { resolve(opts: { readonly path: string; readonly profile?: string | null | undefined; readonly language?: string | null | undefined; }): ProjectionAuthorityResolution; } export declare class ProjectionProfileResolverError extends Error { readonly kind: "profile_config_invalid"; constructor(message: string); } export declare function createProjectionProfileResolver(config: ProjectionProfileResolverConfig): ProjectionProfileResolver; //# sourceMappingURL=projection-profile-resolver.d.ts.map