import { TaskRow } from '@mcoda/db'; import { QaProfile } from '@mcoda/shared/qa/QaProfile.js'; export interface QaProfileResolutionOptions { profileName?: string; level?: string; defaultLevel?: string; runnerPreference?: 'cli' | 'chromium' | 'maestro'; } type QaRunner = 'cli' | 'chromium' | 'maestro'; export declare class QaProfileService { private workspaceRoot; private cache?; private webInterfaceCache?; private routingCache?; private noRepoWrites; constructor(workspaceRoot: string, options?: { noRepoWrites?: boolean; }); private get mcodaDir(); private fileExists; private readPackageJson; private detectWebInterface; private detectUiTask; private detectMobileTask; private resolveRunnerPlan; getRunnerPlan(task: TaskRow & { metadata?: any; }): Promise<{ runners: QaRunner[]; hasWebInterface: boolean; uiTask: boolean; mobileTask: boolean; }>; private resolveRunnerPreference; private get profilePath(); private get workspaceConfigPath(); private getConfiguredDefaultProfileName; private getRoutingConfig; loadProfiles(): Promise; resolveProfileForTask(task: TaskRow & { metadata?: any; }, options?: QaProfileResolutionOptions): Promise; resolveProfilesForTask(task: TaskRow & { metadata?: any; }, options?: QaProfileResolutionOptions): Promise; } export {}; //# sourceMappingURL=QaProfileService.d.ts.map