/**
 * LicenseStore — per-machine persistence for an activated OpenLife Business
 * license. Mirrors GovernanceConsentStore: atomic writes for the state file,
 * append-only JSONL for the audit trail.
 *
 * Files (both gitignored and excluded from the npm package):
 *   - `.openlife/license.json`         → the cached SignedLicense (or absent = Community)
 *   - `.openlife/license-events.jsonl` → activate / refresh / deactivate / expire events
 *
 * This store does NO verification — it only reads/writes bytes. Trust decisions
 * belong to LicenseManager so the two concerns stay testable in isolation.
 */
import type { SignedLicense } from './LicenseManager';
export type LicenseEventType = 'activate' | 'refresh' | 'deactivate' | 'expire';
export interface LicenseEvent {
    type: LicenseEventType;
    keyId?: string;
    tier?: string;
    at: string;
    note?: string;
}
export declare class LicenseStore {
    private root;
    private readonly licenseFile;
    private readonly eventsFile;
    constructor(root?: string);
    /** The cached signed license, or null when none is activated (Community). */
    current(): SignedLicense | null;
    /** Persist an activated/refreshed license and record an audit event. */
    save(token: SignedLicense, type?: LicenseEventType): void;
    /** Remove the cached license (revert to Community) and record the event. */
    clear(note?: string): void;
    /** Append one line to the audit trail. */
    appendEvent(event: LicenseEvent): void;
    /** Full audit trail, oldest first. Empty when none exists. */
    events(): LicenseEvent[];
}
