import type OpenAI from 'openai';
export type Role = 'system' | 'user' | 'assistant' | 'tool';
export interface Message {
    role: Role;
    content: string | null;
    tool_calls?: OpenAI.Chat.ChatCompletionMessageFunctionToolCall[];
    tool_call_id?: string;
    name?: string;
}
export interface GrawkusConfig {
    apiKey: string;
    apiKeys?: string[];
    baseURL: string;
    model: string;
    fallbackModel?: string;
    provider: string;
    maxTokens: number;
    temperature: number;
    maxTurns?: number;
    permissionMode: 'ask' | 'auto' | 'yolo';
    alwaysAllowedTools?: string[];
    dryRun?: boolean;
    theme?: 'full' | 'compact' | 'minimal';
    palette?: string;
    showThinking?: boolean;
    voice?: VoiceConfig;
    memory?: MemoryConfig;
    sandbox?: SandboxConfig;
}
export interface SandboxConfig {
    /** off (no wrap) | standard (cwd + /tmp writable, net allowed) | strict (cwd-only) */
    level?: 'off' | 'standard' | 'strict';
}
export interface MemoryConfig {
    enabled?: boolean;
    globalScope?: boolean;
    projectScope?: boolean;
}
export interface VoiceConfig {
    enabled?: boolean;
    stt?: VoiceSttConfig;
    tts?: VoiceTtsConfig;
    accessibility?: VoiceAccessibilityConfig;
}
export interface VoiceSttConfig {
    apiKey?: string;
    baseURL?: string;
    model?: string;
    dictationKey?: string;
    autoSubmit?: boolean;
}
export interface VoiceTtsConfig {
    apiKey?: string;
    baseURL?: string;
    model?: string;
    assistantVoiceId?: string;
    userVoiceId?: string;
    echoUser?: boolean;
    skipCode?: boolean;
    speed?: number;
    stability?: number;
    similarityBoost?: number;
}
export interface VoiceAccessibilityConfig {
    screenReader?: boolean;
    audioCues?: boolean;
    announceErrors?: boolean;
    announceModeSwitches?: boolean;
    askBeforeDestructive?: boolean;
    longResponseThreshold?: number;
}
export interface ProviderPreset {
    name: string;
    baseURL: string;
    defaultModel: string;
    requiresKey: boolean;
}
export declare const PROVIDERS: Record<string, ProviderPreset>;
