export type SpecialistAuthority = 'advisory' | 'review' | 'mutate';
export type OptimizationProfile = 'standard' | 'max';
export interface SelectionConfidence {
    score: number;
    reasons: string[];
}
export interface SelectedSpecialist {
    specialistId: string;
    name: string;
    division: string;
    authority: SpecialistAuthority;
    confidence: SelectionConfidence;
}
export interface SelectedCrew {
    crewId: string;
    name: string;
    summary: string;
    domains: string[];
    confidence: SelectionConfidence;
}
export interface FallbackPlan {
    summary: string;
    steps: string[];
}
export interface ReviewGateResult {
    gate: 'pm' | 'architecture' | 'code-review' | 'cto' | 'devops' | 'marketer-docs';
    status: 'planned' | 'ready' | 'blocked' | 'skipped';
    owner: string;
    rationale: string;
}
export interface ContinuationProposal {
    summary: string;
    suggestedActions: string[];
    automationCandidates: string[];
}
export interface PlanningLedgerRow {
    stage: string;
    status: 'planned' | 'completed' | 'fallback';
    owner: string;
    selectedAssets: string[];
    notes: string;
}
export interface ToolPolicyDecision {
    allowedTools: string[];
    reasons: string[];
}
export interface SpecialistProfile {
    specialistId: string;
    name: string;
    division: string;
    description: string;
    emoji?: string;
    color?: string;
    vibe?: string;
    authority: SpecialistAuthority;
    domains: string[];
    tools: string[];
    roleAffinity: string[];
    mission: string;
    rules: string[];
    workflow: string[];
    deliverables: string[];
    communicationStyle: string[];
    successMetrics: string[];
    aliases: string[];
    recommendedSkills: string[];
    recommendedWorkflows: string[];
    rawMarkdown: string;
    sections: Record<string, string>;
    sourcePath: string;
}
export interface CrewTemplate {
    crewId: string;
    name: string;
    summary: string;
    domains: string[];
    requiredSpecialists: string[];
    optionalSpecialists: string[];
    reviewGates: ReviewGateResult['gate'][];
    fallbackCrewId?: string;
}
export declare function listSpecialists(): SpecialistProfile[];
export declare function getSpecialist(specialistId: string): SpecialistProfile | undefined;
export declare function listCrewTemplates(): CrewTemplate[];
export declare function getCrewTemplate(crewId: string): CrewTemplate | undefined;
export declare function planSpecialists(input: {
    goal: string;
    files?: string[];
    requestedCrews?: string[];
    requestedSpecialists?: string[];
    requestedSkills?: string[];
    requestedWorkflows?: string[];
    optimizationProfile?: OptimizationProfile;
}): {
    selectedCrew: SelectedCrew;
    selectedSpecialists: SelectedSpecialist[];
    selectedSkills: string[];
    selectedWorkflows: string[];
    toolPolicy: ToolPolicyDecision;
    fallbackPlan: FallbackPlan;
    reviewGates: ReviewGateResult[];
    continuation: ContinuationProposal;
    ledger: PlanningLedgerRow[];
};
/**
 * The 10 curated starter specialists for the "Your next 10 hires" empty state.
 * Ordered by recommended first-hire priority. These IDs are stable and map
 * directly to entries in src/engines/data/specialist-profiles.json.
 */
export declare const STARTER_SPECIALIST_IDS: readonly string[];
/**
 * Returns the curated list of 10 starter specialists in priority order.
 * Any ID not found in the live catalog is silently skipped so catalog drift
 * can't break the dashboard empty state.
 */
export declare function listStarterSpecialists(): SpecialistProfile[];
