import { type AgentManifest, type RuntimeApprovalResolver } from "../agentCore/index.js";
import type { OpenAIV1ResponsesProviderCaller } from "../agentCore/agent_modelAdapter/actualInvocationLayer/openai/v1_responses.js";
import type { OpenAiV1ChatCompletionsProviderCaller } from "../agentCore/agent_modelAdapter/actualInvocationLayer/openai/v1_chat_completions.js";
import type { AnthropicV1MessagesProviderCaller } from "../agentCore/agent_modelAdapter/actualInvocationLayer/anthropic/v1_messages.js";
import type { AuthEnvelope } from "../agentCore/agent_modelAdapter/authProfileLayer/authEnvelope.js";
import type { PraxisApplicationPermissionProfile, PraxisApplicationReasoningEffort, PraxisApplicationRuntime, PraxisApplicationRuntimeMode } from "./applicationContract.js";
import { type PraxisApplicationProject } from "./applicationProject.js";
export type PraxisApplicationLiveProvider = {
    auth: AuthEnvelope;
    providerCaller?: OpenAIV1ResponsesProviderCaller;
    openaiResponsesCaller?: OpenAIV1ResponsesProviderCaller;
    openaiChatCompletionsCaller?: OpenAiV1ChatCompletionsProviderCaller;
    anthropicMessagesCaller?: AnthropicV1MessagesProviderCaller;
    provider?: string;
    endpointShape?: string;
    baseURL?: string;
    providerRoute?: string;
};
export type PraxisApplicationRuntimeOptions = {
    project: PraxisApplicationProject;
    applicationId?: string;
    sessionId?: string;
    runtimeId?: string;
    cwd?: string;
    mode?: PraxisApplicationRuntimeMode;
    provider?: string;
    endpointShape?: string;
    baseURL?: string;
    providerRoute?: string;
    model?: string;
    reasoningEffort?: PraxisApplicationReasoningEffort;
    maxOutputTokens?: number;
    permissionProfile?: PraxisApplicationPermissionProfile;
    approvalResolver?: RuntimeApprovalResolver;
    liveProviderResolver?: (manifest: AgentManifest, context?: {
        sessionId: string;
        runtimeId: string;
        turnId?: string;
        onTextDelta?: (delta: string, metadata?: Readonly<Record<string, unknown>>) => void;
        onProviderStreamEvent?: (event: Readonly<Record<string, unknown>>) => void;
    }) => Promise<PraxisApplicationLiveProvider | undefined>;
    now?: () => string;
};
export type CreateApplicationProjectRuntimeOptions = Omit<PraxisApplicationRuntimeOptions, "project">;
export declare function createPraxisApplicationRuntime(options: PraxisApplicationRuntimeOptions): PraxisApplicationRuntime;
export declare function createApplicationProjectRuntime(projectRoot: string, options?: CreateApplicationProjectRuntimeOptions): Promise<{
    ok: true;
    runtime: PraxisApplicationRuntime;
} | {
    ok: false;
    error: {
        code: string;
        message: string;
    };
}>;
