/**
 * ADR-PIPELINE-070: Domain Labor-Intensity Classifier
 *
 * Pure rules-based classifier. Maps the detected sector + free-text query
 * keywords to a LaborProfile that downstream renderers consume:
 *
 *   - Risk register injects a Workforce Impact section
 *   - Financial analysis adds a workforce exposure block
 *   - Decision memo RACI gains HR + Legal rows
 *   - Sensitivity table gains a change-management variable
 *
 * The classifier is intentionally coarse — it answers "is this sector
 * labor-intensive enough that workforce risk MUST appear in the
 * deliverables?" not "what specific labor risks does this engagement
 * have?". The Workforce Impact rows it produces are templates labelled
 * `*Template risk — refine with HR during pilot scoping*`.
 */
import { type Sector } from './domain-unit-registry.js';
import type { DomainAnalysis } from './simulation-renderers.js';
export type LaborIntensity = 'high' | 'medium' | 'low';
export type UnionizationRisk = 'high' | 'medium' | 'low';
export type Region = 'NA' | 'EMEA' | 'APAC';
export interface LaborProfile {
    /** Overall labor intensity for this engagement. */
    readonly intensity: LaborIntensity;
    /** Detected sector (from ADR-066 registry) — 'unknown' when unmatched. */
    readonly sector: Sector;
    /** Plain-English role types most affected by the engagement. */
    readonly roleTypes: readonly string[];
    /** Likelihood that affected workforce sits within a unionized population. */
    readonly unionizationRisk: UnionizationRisk;
    /** Per-region labor exposure multipliers (1.0 = baseline). */
    readonly regionMultipliers: Readonly<Record<Region, number>>;
    /** Why the classifier picked this intensity — surfaced in logs/artifacts. */
    readonly reasoning: string;
}
/**
 * ADR-PIPELINE-070: classify the labor intensity of an engagement.
 *
 * Inputs:
 *   - `domainAnalysis` — when present, its `domain` field is treated as the
 *     authoritative sector hint (from ADR-PIPELINE-041's pipeline output).
 *   - `query` — free-text query, used both for sector detection and for
 *     intensity-override patterns.
 *
 * The function never throws. Unknown sectors return the LOW_DEFAULT profile.
 */
export declare function classifyLaborIntensity(domainAnalysis: DomainAnalysis | null, query: string): LaborProfile;
/** True when the renderer must inject workforce content. */
export declare function isLaborIntensive(profile: LaborProfile): boolean;
export interface WorkforceRiskRow {
    readonly category: string;
    readonly risk: string;
    readonly likelihood: 'High' | 'Medium' | 'Low';
    readonly severity: 'High' | 'Medium' | 'Low';
    readonly owner: string;
    readonly mitigation: string;
    readonly template: true;
}
export declare function workforceRiskTemplate(profile: LaborProfile): readonly WorkforceRiskRow[];
export interface WorkforceExposure {
    readonly rolesAffected: number;
    readonly emeaUnionExposure: number;
    readonly changeMgmtBudgetLowUsd: number;
    readonly changeMgmtBudgetHighUsd: number;
    readonly changeMgmtPct: number;
    readonly reallocationNeutral: boolean;
    readonly primaryRoleLabel: string;
}
interface WorkforceExposureInputs {
    /** Total enterprise headcount (for context only — never the savings base). */
    readonly employees: number;
    /** Operational units (rooms, sqft, vehicles, ...) when known. */
    readonly operationalUnits?: number;
    /** Pilot investment range mid-point in USD — basis for change-mgmt budget. */
    readonly pilotInvestmentUsd?: number;
}
export declare function estimateWorkforceExposure(profile: LaborProfile, inputs: WorkforceExposureInputs): WorkforceExposure | null;
export interface WorkforceRaciRow {
    readonly role: string;
    readonly responsibility: 'Responsible' | 'Accountable' | 'Consulted' | 'Informed';
    readonly cadence: string;
    readonly template: true;
}
export declare function workforceRaciTemplate(profile: LaborProfile): readonly WorkforceRaciRow[];
export interface WorkforceSensitivityRow {
    readonly variable: string;
    readonly range: string;
    readonly impactPctOfPilot: number;
    readonly reasoning: string;
}
export declare function workforceSensitivityRow(profile: LaborProfile): WorkforceSensitivityRow | null;
export interface LaborProfileArtifact {
    readonly version: '1.0';
    readonly generated_at: string;
    readonly profile: LaborProfile;
    readonly exposure: WorkforceExposure | null;
}
export declare function buildLaborProfileArtifact(profile: LaborProfile, exposure: WorkforceExposure | null): LaborProfileArtifact;
export {};
//# sourceMappingURL=domain-labor-classifier.d.ts.map