import { z } from "#compiled/zod/index.js";
export declare const catalogModelProviderSchema: z.ZodObject<{
    provider: z.ZodString;
    providerModelId: z.ZodString;
    contextWindowTokens: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
}, z.core.$loose>;
export declare const catalogModelSchema: z.ZodObject<{
    slug: z.ZodString;
    providers: z.ZodArray<z.ZodObject<{
        provider: z.ZodString;
        providerModelId: z.ZodString;
        contextWindowTokens: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    }, z.core.$loose>>;
}, z.core.$loose>;
export declare const modelCatalogResponseSchema: z.ZodObject<{
    models: z.ZodArray<z.ZodObject<{
        slug: z.ZodString;
        providers: z.ZodArray<z.ZodObject<{
            provider: z.ZodString;
            providerModelId: z.ZodString;
            contextWindowTokens: z.ZodOptional<z.ZodNumber>;
            maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        }, z.core.$loose>>;
    }, z.core.$loose>>;
    providerAliases: z.ZodRecord<z.ZodString, z.ZodString>;
}, z.core.$loose>;
export type CatalogModelProvider = z.infer<typeof catalogModelProviderSchema>;
export type CatalogModel = z.infer<typeof catalogModelSchema>;
/**
 * Stable runtime model limits that eve can embed in compiled artifacts without
 * resolving provider metadata at runtime.
 */
export type CompiledRuntimeModelLimits = z.infer<typeof compiledRuntimeModelLimitsSchema>;
declare const compiledRuntimeModelLimitsSchema: z.ZodObject<{
    contextWindowTokens: z.ZodNumber;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
}, z.core.$strict>;
/**
 * Loader that resolves compile-time model limits for one application build.
 */
export interface CompiledRuntimeModelCatalogLoader {
    getModelLimits(modelId: string): Promise<CompiledRuntimeModelLimits | null>;
    getByProviderModelId(provider: string, providerModelId: string): Promise<{
        slug: string;
        limits: CompiledRuntimeModelLimits;
    } | null>;
}
/**
 * Resolves the app-local cache path used for AI Gateway model metadata during
 * compilation.
 */
export declare function resolveCompiledRuntimeModelCatalogCachePath(appRoot: string): string;
/**
 * Creates a per-build loader that caches the AI Gateway model catalog in
 * memory and on disk.
 */
export declare function createCompiledRuntimeModelCatalogLoader(appRoot: string): CompiledRuntimeModelCatalogLoader;
export {};
