export declare const STORAGE_ROOT: string;
export declare const DRAFTS_DIR: string;
export declare const DOCUMENTS_DIR: string;
export declare const ACTIVITY_LOG: string;
export interface FormDraft {
    docId: string;
    formValues: Record<string, string>;
    updatedAt: string;
    createdAt: string;
    autosave: boolean;
    /** 사용자가 명시 저장한 시점 (autosave=false 호출 시) */
    manualSavedAt?: string;
}
/**
 * 입력값을 A2UI input type 표준 형식으로 정규화.
 * viewer의 renderComponent / maybeLoadDraft 와 동일한 룰 — CLI와 A2UI 폼이 같은 결과.
 *
 * 변환 룰:
 *   - 일자/날짜 키 → YYYY-MM-DD
 *   - 일시/datetime 키 → YYYY-MM-DDTHH:MM
 *   - 시각/time 키 → HH:MM
 *   - 숫자 키 → 숫자만 (공백·콤마·단위 제거)
 *
 * 키 패턴 매칭은 단순 휴리스틱. 매칭 실패 시 원본 보존.
 */
export declare function normalizeFormValues(values: Record<string, string>): Record<string, string>;
export declare function saveDraft(docId: string, formValues: Record<string, string>, autosave?: boolean): Promise<FormDraft>;
export declare function loadDraft(docId: string): Promise<FormDraft | null>;
export declare function deleteDraft(docId: string): Promise<boolean>;
export interface DraftSummary {
    docId: string;
    updatedAt: string;
    fieldCount: number;
    manualSavedAt?: string;
    autosaveOnly: boolean;
}
export declare function listDrafts(): Promise<DraftSummary[]>;
export declare const ARCHIVE_FORMATS: readonly ["markdown", "html", "json"];
export type ArchiveFormat = (typeof ARCHIVE_FORMATS)[number];
export interface ArchivedDocument {
    docId: string;
    archivedAt: string;
    format: ArchiveFormat;
    filename: string;
    byteSize: number;
}
export declare function archiveDocument(docId: string, content: string, format?: ArchiveFormat): Promise<ArchivedDocument>;
export declare function listArchivedDocuments(filterDocId?: string): Promise<Array<ArchivedDocument & {
    fullPath: string;
}>>;
export declare function loadArchivedDocument(docId: string, filename: string): Promise<string | null>;
export interface ActivityEvent {
    at: string;
    type: string;
    [k: string]: unknown;
}
export declare function readRecentActivity(limit?: number): Promise<ActivityEvent[]>;
export declare function getStorageStats(): Promise<{
    storageRoot: string;
    profileExists: boolean;
    draftCount: number;
    archivedDocCount: number;
    archivedDocByDocId: Record<string, number>;
    recentActivityCount: number;
    activityLogBytes: number;
}>;
//# sourceMappingURL=local-storage.d.ts.map