import { z } from "zod";
import type { GdsAdapter, GdsRequest, GdsResponse } from "./adapter.ts";
export declare const RouterConfigSchema: z.ZodObject<{
    priorityOrder: z.ZodArray<z.ZodString>;
    maxRetries: z.ZodNumber;
    fallbackEnabled: z.ZodBoolean;
}, z.core.$strip>;
export type RouterConfig = z.infer<typeof RouterConfigSchema>;
export declare class AdapterRouter {
    private readonly adapters;
    private readonly carrierIndex;
    private readonly config;
    constructor(adapters: GdsAdapter[], config?: Partial<RouterConfig>);
    /** Route a request to the best available adapter. Validates input with Zod. */
    route(request: GdsRequest): Promise<GdsResponse>;
    /** Get all adapters supporting a carrier. */
    getAdaptersForCarrier(carrier: string): GdsAdapter[];
    /** Get an adapter by provider name. */
    getAdapter(providerName: string): GdsAdapter | undefined;
    /** List all registered adapters. */
    listAdapters(): GdsAdapter[];
    /** Get health status from all adapters. */
    health(): Promise<Record<string, unknown>>;
    private executeWithRetry;
}
//# sourceMappingURL=router.d.ts.map