import { z } from 'zod';
declare const ApiConfigSchema: z.ZodObject<{
    name: z.ZodString;
    baseUrl: z.ZodString;
    auth: z.ZodOptional<z.ZodObject<{
        type: z.ZodEnum<["none", "bearer", "api-key", "oauth"]>;
        config: z.ZodOptional<z.ZodAny>;
    }, "strip", z.ZodTypeAny, {
        type: "none" | "bearer" | "api-key" | "oauth";
        config?: any;
    }, {
        type: "none" | "bearer" | "api-key" | "oauth";
        config?: any;
    }>>;
    headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    timeout: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    name: string;
    baseUrl: string;
    timeout?: number | undefined;
    headers?: Record<string, string> | undefined;
    auth?: {
        type: "none" | "bearer" | "api-key" | "oauth";
        config?: any;
    } | undefined;
}, {
    name: string;
    baseUrl: string;
    timeout?: number | undefined;
    headers?: Record<string, string> | undefined;
    auth?: {
        type: "none" | "bearer" | "api-key" | "oauth";
        config?: any;
    } | undefined;
}>;
declare const ConfigSchema: z.ZodObject<{
    apis: z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        baseUrl: z.ZodString;
        auth: z.ZodOptional<z.ZodObject<{
            type: z.ZodEnum<["none", "bearer", "api-key", "oauth"]>;
            config: z.ZodOptional<z.ZodAny>;
        }, "strip", z.ZodTypeAny, {
            type: "none" | "bearer" | "api-key" | "oauth";
            config?: any;
        }, {
            type: "none" | "bearer" | "api-key" | "oauth";
            config?: any;
        }>>;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        timeout: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        baseUrl: string;
        timeout?: number | undefined;
        headers?: Record<string, string> | undefined;
        auth?: {
            type: "none" | "bearer" | "api-key" | "oauth";
            config?: any;
        } | undefined;
    }, {
        name: string;
        baseUrl: string;
        timeout?: number | undefined;
        headers?: Record<string, string> | undefined;
        auth?: {
            type: "none" | "bearer" | "api-key" | "oauth";
            config?: any;
        } | undefined;
    }>, "many">;
    defaults: z.ZodOptional<z.ZodObject<{
        timeout: z.ZodDefault<z.ZodNumber>;
        retries: z.ZodDefault<z.ZodNumber>;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        timeout: number;
        retries: number;
        headers?: Record<string, string> | undefined;
    }, {
        timeout?: number | undefined;
        headers?: Record<string, string> | undefined;
        retries?: number | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    apis: {
        name: string;
        baseUrl: string;
        timeout?: number | undefined;
        headers?: Record<string, string> | undefined;
        auth?: {
            type: "none" | "bearer" | "api-key" | "oauth";
            config?: any;
        } | undefined;
    }[];
    defaults?: {
        timeout: number;
        retries: number;
        headers?: Record<string, string> | undefined;
    } | undefined;
}, {
    apis: {
        name: string;
        baseUrl: string;
        timeout?: number | undefined;
        headers?: Record<string, string> | undefined;
        auth?: {
            type: "none" | "bearer" | "api-key" | "oauth";
            config?: any;
        } | undefined;
    }[];
    defaults?: {
        timeout?: number | undefined;
        headers?: Record<string, string> | undefined;
        retries?: number | undefined;
    } | undefined;
}>;
export type ApiConfig = z.infer<typeof ApiConfigSchema>;
export type Config = z.infer<typeof ConfigSchema>;
export declare class ConfigManager {
    private config;
    private configPath;
    constructor(configPath?: string);
    load(): Promise<Config>;
    save(): Promise<void>;
    getApi(name: string): ApiConfig | undefined;
    addApi(api: ApiConfig): Promise<void>;
    removeApi(name: string): Promise<void>;
}
export declare const configManager: ConfigManager;
export {};
//# sourceMappingURL=index.d.ts.map