import { resolveEffectivePermissions } from "@bolt-foundry/gambit-core"; import type { Guardrails, ModelMessage, ModelProvider, PermissionDeclarationInput, PermissionTrace, ToolDefinition } from "@bolt-foundry/gambit-core"; export declare const logger: Console; export type ChatCompletionsRequest = { model: string; messages: Array<{ role: "system" | "user" | "assistant" | "tool"; content: string | null | Array; name?: string; tool_call_id?: string; tool_calls?: ModelMessage["tool_calls"]; }>; tools?: Array; stream?: boolean; temperature?: number; top_p?: number; frequency_penalty?: number; presence_penalty?: number; max_tokens?: number; [key: string]: unknown; }; export type ChatCompletionsResponse = { id: string; object: "chat.completion"; created: number; model: string; choices: Array<{ index: number; message: ModelMessage; finish_reason: "stop" | "tool_calls" | "length"; logprobs: null; }>; usage?: { prompt_tokens: number; completion_tokens: number; total_tokens: number; }; /** * Non-OpenAI extension field containing the full transcript and metadata. * Most clients will ignore unknown fields. */ gambit?: { deckPath: string; messages: Array; runId: string; }; }; export declare function chatCompletionsWithDeck(args: { deckPath: string; request: ChatCompletionsRequest; modelProvider: ModelProvider; /** * When true (default), Gambit will execute tool calls that match deck actions. * Any other tool calls are returned to the caller as normal OpenAI tool calls. */ executeDeckTools?: boolean; guardrails?: Partial; defaultModel?: string; onStreamText?: (chunk: string) => void; workspacePermissions?: PermissionDeclarationInput; workspacePermissionsBaseDir?: string; sessionPermissions?: PermissionDeclarationInput; sessionPermissionsBaseDir?: string; parentPermissions?: ReturnType["effective"]; workerSandbox?: boolean; trace?: (event: { type: string; permissions?: PermissionTrace; }) => void; }): Promise; //# sourceMappingURL=openai_compat.d.ts.map