/** * QA360 Ask Command - Natural language to pack.yml generation (v2) */ export interface PackConfigV2 { version: 2; name: string; description?: string; profile?: string; auth?: AuthConfigV2; gates: Record; hooks?: HooksConfig; execution?: ExecutionConfigV2; variables?: Record; metadata?: Record; } export interface AuthConfigV2 { api?: string; ui?: string; profiles?: Record; } export interface AuthProfile { type: string; config: Record; cache?: { enabled?: boolean; ttl?: number; }; } export interface GateConfigV2 { adapter?: string; test_files?: string[]; config?: Record; auth?: string; budgets?: Record; options?: { timeout?: number; retries?: number; continue_on_failure?: boolean; }; enabled?: boolean; depends_on?: string[]; parallel?: boolean; } export interface HooksConfig { beforeAll?: Hook[]; afterAll?: Hook[]; beforeEach?: Hook[]; afterEach?: Hook[]; } export interface Hook { type: 'run' | 'wait_on' | 'script' | 'docker'; command?: string; cwd?: string; timeout?: number; env?: Record; wait_for?: { resource: string; timeout?: number; }; compose?: { file?: string; services?: string[]; command?: string; }; } export interface ExecutionConfigV2 { parallel?: boolean; max_concurrency?: number; default_timeout?: number; default_retries?: number; on_failure: 'stop' | 'continue' | 'proceed'; limits?: { cpu?: string; memory?: string; }; compose_file?: string; hook_timeout_ms?: number; } export declare class QA360Ask { private qa360Dir; generatePack(query?: string): Promise; private interactiveMode; private parseNaturalLanguage; private generatePackFromAnswers; private generateApiPack; private generateWebPack; private generatePerformancePack; private generateSecurityPack; private generateAccessibilityPack; private generateCompletePack; savePack(pack: PackConfigV2): Promise; displayPack(pack: PackConfigV2): void; } export declare function askCommand(query?: string): Promise;