import type { Diagnostic } from "./diagnostics.js";
export declare const SUPPORTED_TOOLCRAFT_EDITION = "2026-05-16";
export type ToolcraftHttpMethod = "get" | "post" | "put" | "patch" | "delete" | "head" | "options";
export interface ToolcraftMethodConfig {
    method: ToolcraftHttpMethod;
    path: string;
    pagination?: string;
    idempotent?: boolean;
}
export interface ToolcraftResourceConfig {
    methods?: Record<string, ToolcraftMethodConfig>;
    subresources?: Record<string, ToolcraftResourceConfig>;
}
export interface ToolcraftConfig {
    edition: string;
    environments?: Record<string, string>;
    client_settings?: {
        idempotency_header?: string;
        auth?: Record<string, {
            env?: string;
        }>;
    };
    pagination?: Record<string, {
        request: Record<string, string>;
        response: Record<string, string>;
    }>;
    retries?: {
        max?: number;
        backoff?: "exponential";
        retry_on?: number[];
    };
    resources?: Record<string, ToolcraftResourceConfig>;
    readme?: {
        examples?: Record<string, Array<{
            title: string;
            params: Record<string, unknown>;
        }>>;
    };
    unspecified_endpoints?: string[];
}
export interface ReadToolcraftConfigOptions {
    cwd?: string;
    fs?: {
        readFile(filePath: string, encoding: BufferEncoding): Promise<string>;
    };
}
export interface ToolcraftConfigResult {
    config?: ToolcraftConfig;
    diagnostics: Diagnostic[];
}
export declare function readToolcraftConfig(filePath: string, options?: ReadToolcraftConfigOptions): Promise<ToolcraftConfigResult>;
export declare function validateToolcraftConfig(value: unknown): ToolcraftConfigResult;
export declare function mergeToolcraftConfig(base: Partial<ToolcraftConfig>, override: Partial<ToolcraftConfig>): Partial<ToolcraftConfig>;
