/**
 * CLI 타입 정의
 */
export interface CliOptions {
    silent: boolean;
}
export interface LLMAuthStatus {
    type: 'codex-cli' | 'antigravity-cli' | 'apikey';
    email?: string;
    valid: boolean;
}
export interface LLMStatusMap {
    claude: LLMAuthStatus[];
    gpt: LLMAuthStatus[];
    antigravity: LLMAuthStatus[];
}
export interface ClaudeCodeStatus {
    installed: boolean;
    version: string | null;
    authenticated: boolean | null;
}
export interface DetectedStack {
    type: string;
    path: string;
}
export type TechStack = DetectedStack;
export interface StackDetails {
    databases: string[];
    stateManagement: string[];
    hosting: string[];
    cicd: string[];
    capabilities: string[];
}
export interface DetectionResult {
    stacks: DetectedStack[];
    details: StackDetails;
}
export interface ExternalLLMConfig {
    name: string;
    role: string;
    description: string;
    package: string;
    envKey: string;
}
export interface VibeReferences {
    rules: string[];
    languages: string[];
    templates: string[];
}
export interface VibeConfig {
    language?: string;
    quality?: {
        strict: boolean;
        autoVerify: boolean;
    };
    stacks?: DetectedStack[];
    details?: StackDetails;
    references?: VibeReferences;
    models?: {
        claude?: {
            enabled: boolean;
            authType?: string;
            role?: string;
            description?: string;
        };
        gpt?: {
            enabled: boolean;
            authType?: string;
            email?: string;
            role?: string;
            description?: string;
        };
        antigravity?: {
            enabled: boolean;
            authType?: string;
            email?: string;
            role?: string;
            description?: string;
        };
    };
    modelOverrides?: Partial<ModelOverrides>;
    priority?: {
        embedding?: Array<'gpt'>;
    };
    uiUxAnalysis?: boolean;
    installedExternalSkills?: string[];
    devlog?: {
        enabled: boolean;
        targetRepo: string;
        targetDir?: string;
        prefix?: string;
        interval?: number;
        autoPush?: boolean;
        lang?: string;
        author?: string;
        category?: string;
        tags?: string[];
    };
}
export interface GptCredentials {
    apiKey?: string;
    createdAt?: string;
}
export interface AntigravityCredentials {
    apiKey?: string;
    createdAt?: string;
}
export interface TelegramChannelConfig {
    botToken?: string;
    allowedChatIds?: string[];
}
export interface SlackChannelConfig {
    botToken?: string;
    appToken?: string;
    allowedChannelIds?: string[];
}
export interface DiscordChannelConfig {
    botToken?: string;
    allowedGuildIds?: string[];
    allowedChannelIds?: string[];
}
export interface ModelOverrides {
    gpt: string;
    gptCodex: string;
    gptCodexSpark: string;
    antigravity: string;
    claudeArchitecture: string;
    claudeResearch: string;
    claudeReview: string;
    claudeBackground: string;
    embedding: string;
    antigravityEmbedding: string;
}
export interface FigmaBreakpoints {
    /** PC↔Mobile boundary (default: 1024) */
    breakpoint: number;
    /** PC main target resolution width (default: 1920) */
    pcTarget: number;
    /** Mobile portrait max width (default: 480) */
    mobilePortrait: number;
    /** Mobile minimum supported width (default: 360) */
    mobileMinimum: number;
    /** Figma design artboard width for PC (default: 2560) */
    designPc: number;
    /** Figma design artboard width for Mobile (default: 720) */
    designMobile: number;
}
export interface FigmaCredentials {
    accessToken?: string;
    createdAt?: string;
}
export interface CodexProxyConfig {
    provider?: string;
    targetUrl?: string;
    apiKey?: string;
    model?: string;
    alias?: string;
}
export interface GlobalVibeConfig {
    version: '1';
    credentials?: {
        gpt?: GptCredentials;
        antigravity?: AntigravityCredentials;
        figma?: FigmaCredentials;
    };
    channels?: {
        telegram?: TelegramChannelConfig;
        slack?: SlackChannelConfig;
        discord?: DiscordChannelConfig;
    };
    models?: Partial<ModelOverrides>;
    figma?: {
        breakpoints?: Partial<FigmaBreakpoints>;
    };
    settings?: {
        workspaceDir?: string;
    };
    codexProxy?: CodexProxyConfig;
}
//# sourceMappingURL=types.d.ts.map