export interface Site {
    "@id": string;
    "@type": "Site";
    name: string;
    businessNumber: string;
    address: string;
    industryCode?: string;
    industrySubCategory?: string;
    ownerName: string;
    ownerSignature?: string;
    workerCountTotal?: number;
    representativeContact?: string;
    establishedDate?: string;
    headOfficeAddress?: string;
    safetyHealthPolicy?: string;
    safetyHealthPolicyDate?: string;
    industrialInsuranceNo?: string;
    employmentInsuranceNo?: string;
    iso45001Class?: "iso45001:Workplace";
}
export interface Project {
    "@id": string;
    "@type": "Project";
    site: string;
    name: string;
    contractAmount?: number;
    contractPeriod?: {
        start: string;
        end: string;
    };
    constructionType?: string;
    scale?: string;
    address?: string;
    ordererName?: string;
    designerName?: string;
    supervisorName?: string;
    workerCount?: {
        male: number;
        female: number;
    };
    safetyCostBudget?: number;
    adjacentFacilities?: {
        gas?: {
            exists: boolean;
            depth?: string;
            provider?: string;
        };
        power?: {
            exists: boolean;
            voltage?: string;
            type?: "overhead" | "underground";
        };
        waterSupply?: {
            exists: boolean;
            depth?: string;
        };
        sewerage?: {
            exists: boolean;
            depth?: string;
        };
        communication?: {
            exists: boolean;
            provider?: string;
        };
        railway?: {
            exists: boolean;
            distance?: string;
        };
        other?: string;
    };
    specialApplications?: {
        apartment?: boolean;
        psc?: boolean;
        asbestos?: boolean;
        explosive?: boolean;
        underwater?: boolean;
        radiation?: boolean;
        confined?: boolean;
    };
    iso45001Class?: "iso45001:Workplace";
}
export interface Person {
    "@id": string;
    "@type": "Person";
    site?: string;
    project?: string;
    name: string;
    role: string;
    title?: string;
    qualification?: string;
    phone?: string;
    email?: string;
    birthDate?: string;
    nationality?: string;
    isForeign?: boolean;
    preferredLanguage?: string;
    employer?: string;
    employmentType?: "정규" | "계약" | "일용" | "파견" | "도급";
    hireDate?: string;
    certifications?: Array<{
        name: string;
        certNo?: string;
        issuedBy?: string;
        issuedDate?: string;
        expiresOn?: string;
    }>;
    trainings?: Array<{
        name: string;
        type?: "정기" | "신규" | "작업변경" | "특별" | "관리감독자" | "MSDS";
        date: string;
        hours?: number;
        instructor?: string;
        institution?: string;
    }>;
    healthChecks?: Array<{
        type: string;
        date: string;
        result: string;
        institution?: string;
    }>;
    signature?: string;
    iso45001Class?: "iso45001:Worker";
}
export interface Equipment {
    "@id": string;
    "@type": "Equipment";
    site?: string;
    project?: string;
    name: string;
    model?: string;
    manufacturer?: string;
    serialNumber?: string;
    ratedCapacity?: string;
    workingRadius?: string;
    installLocation?: string;
    safetyCertType?: "안전인증" | "자율안전확인" | "해당없음";
    safetyCertNo?: string;
    safetyInspectionDate?: string;
    safetyInspectionCertNo?: string;
    inspections?: Array<{
        type: "안전검사" | "정기점검" | "수시점검" | "정밀안전진단";
        date: string;
        result: "합격" | "불합격" | "조건부합격";
        certNo?: string;
        nextDueDate?: string;
        inspector?: string;
    }>;
    qualifiedOperators?: string[];
    qualifiedOperatorsDetail?: Array<{
        name: string;
        certName: string;
        certNo: string;
        expiresOn?: string;
    }>;
    iso45001Class?: "iso45001:Workplace";
}
export interface Contractor {
    "@id": string;
    "@type": "Contractor";
    project: string;
    name: string;
    ceo: string;
    businessNumber?: string;
    contractAmount?: number;
    scope?: string;
    contractPeriod?: {
        start: string;
        end: string;
    };
    representativeOnSite?: string;
    workerCount?: number;
    safetyManagerName?: string;
    safetyManagerCertNo?: string;
    safetyCostShareRate?: number;
    safetyCostShareAmount?: number;
    subcontractRate?: number;
    contractTier?: 1 | 2 | 3;
    iso45001Class?: "iso45001:Workplace";
}
export interface Profile {
    "@context": {
        "@vocab": "https://agent-safety-oss/vocab/profile#";
    };
    _meta: {
        version: string;
        createdAt: string;
        updatedAt: string;
        description: string;
    };
    sites: Site[];
    projects: Project[];
    persons: Person[];
    equipments: Equipment[];
    contractors: Contractor[];
}
export declare function loadProfile(): Promise<Profile>;
export declare function saveProfile(profile: Profile): Promise<void>;
export declare function invalidateProfileCache(): void;
export declare function getProfilePath(): string;
export declare function makeId(type: "site" | "project" | "person" | "equipment" | "contractor", name: string): string;
export declare function autoFillFromProfile(draft: Record<string, unknown>, options: {
    siteId?: string;
    projectId?: string;
    profile: Profile;
    docId: string;
}): {
    draft: Record<string, unknown>;
    appliedFields: string[];
};
//# sourceMappingURL=site-profile.d.ts.map