import type { Agent0CatalogModel, Agent0Config, Agent0ProjectPaths } from '../types.js';
import type { Agent0OpenCodeAgentConfig, Agent0OpenCodeCommandConfig } from '../capabilities/builtins.js';
import { type Agent0OpenCodePermissionConfig } from './permissions.js';
export interface Agent0OpenCodeApiAuth {
    type: 'api';
    key: string;
}
export type Agent0OpenCodeAuthContent = Record<string, Agent0OpenCodeApiAuth>;
export interface Agent0OpenCodeProviderConfig {
    api?: string;
    name?: string;
    options?: {
        apiKey?: string;
        baseURL?: string;
    };
    models?: Record<string, {
        id?: string;
        name: string;
        cost?: {
            input: number;
            output: number;
        };
        limit?: {
            context: number;
            output: number;
        };
        attachment?: boolean;
        modalities?: {
            input: Array<'text' | 'audio' | 'image' | 'video' | 'pdf'>;
            output: Array<'text' | 'audio' | 'image' | 'video' | 'pdf'>;
        };
    }>;
}
export interface Agent0OpenCodeConfig {
    server?: {
        port: number;
        cors?: string[];
    };
    enabled_providers?: string[];
    provider?: Record<string, Agent0OpenCodeProviderConfig>;
    mcp: Record<string, {
        type: 'remote';
        url: string;
        oauth?: false;
    }>;
    permission: Agent0OpenCodePermissionConfig;
    default_agent: string;
    agent: Record<string, Agent0OpenCodeAgentConfig>;
    command?: Record<string, Agent0OpenCodeCommandConfig>;
    plugin: [];
    skills: {
        paths: string[];
        urls: [];
    };
    instructions: string[];
    share: 'disabled';
    autoupdate: false;
}
export interface Agent0OpenCodeRuntimeRenderOptions {
    paths: Agent0ProjectPaths;
    adkDevConsolePort: number;
    agentPath: string;
    agent0Config?: Agent0Config;
    cognitiveModels?: Agent0CatalogModel[];
    openCodePort?: number;
    corsOrigins?: string[];
}
export interface Agent0OpenCodeRuntimeRenderResult {
    config: Agent0OpenCodeConfig;
    authContent: Agent0OpenCodeAuthContent;
    renderedOpenCodeConfigHash: string;
    env: Record<string, string>;
}
export declare function buildAgent0OpenCodeAuthContent(config: Agent0Config): Agent0OpenCodeAuthContent;
export declare function buildAgent0OpenCodeConfig(options: Agent0OpenCodeRuntimeRenderOptions): Agent0OpenCodeConfig;
export declare function buildAgent0CognitiveProvider(options: Pick<Agent0OpenCodeRuntimeRenderOptions, 'adkDevConsolePort' | 'agentPath' | 'cognitiveModels'>): Agent0OpenCodeProviderConfig;
export declare function buildAgent0OpenCodeEnv(paths: Agent0ProjectPaths, configOrContent: Agent0OpenCodeConfig | string, authContent?: Agent0OpenCodeAuthContent): Record<string, string>;
export declare function renderAgent0OpenCodeRuntime(options: Agent0OpenCodeRuntimeRenderOptions): Agent0OpenCodeRuntimeRenderResult;
export declare function prepareAgent0OpenCodeRuntime(options: Agent0OpenCodeRuntimeRenderOptions): Promise<Agent0OpenCodeRuntimeRenderResult>;
//# sourceMappingURL=engine.d.ts.map