export type ExtensionSource = 'npm' | 'local' | 'git' | 'store';
export interface ExtensionLockEntry {
    /** Extension ID */
    name: string;
    /** Installed version */
    version: string;
    /** Resolved URL or path */
    resolved: string;
    /** Integrity hash (for verification) */
    integrity?: string;
    /** Installation timestamp */
    installedAt: string;
    /** Source type */
    source: ExtensionSource;
    /** Local path (for local extensions) */
    localPath?: string;
    /** Git reference (for git extensions) */
    gitRef?: string;
    /** Dependencies */
    dependencies?: Record<string, string>;
}
export interface ExtensionsLockfile {
    version: number;
    lockfileVersion: number;
    /** Installed extensions */
    extensions: Record<string, ExtensionLockEntry>;
    /** Last updated timestamp */
    lastUpdated?: string;
}
export declare class ExtensionLockfileManager {
    private readonly lockfilePath;
    constructor(lockfilePath?: string);
    /**
     * Load the lockfile
     */
    load(): Promise<ExtensionsLockfile>;
    /**
     * Save the lockfile
     */
    save(data: ExtensionsLockfile): Promise<void>;
    /**
     * Add or update an extension entry
     */
    upsert(extensionId: string, entry: Omit<ExtensionLockEntry, 'installedAt'>): Promise<void>;
    /**
     * Remove an extension entry
     */
    remove(extensionId: string): Promise<void>;
    /**
     * Get a specific extension entry
     */
    get(extensionId: string): Promise<ExtensionLockEntry | null>;
    /**
     * Check if an extension is locked
     */
    has(extensionId: string): Promise<boolean>;
    /**
     * List all locked extensions
     */
    list(): Promise<ExtensionLockEntry[]>;
    /**
     * Verify extension integrity
     */
    verify(extensionId: string): Promise<{
        valid: boolean;
        reason?: string;
    }>;
    /**
     * Verify all locked extensions
     */
    verifyAll(): Promise<Array<{
        extensionId: string;
        valid: boolean;
        reason?: string;
    }>>;
    /**
     * Freeze current state (save with validation)
     */
    freeze(): Promise<ExtensionsLockfile>;
    /**
     * Generate integrity hash for a file
     */
    static generateIntegrity(filePath: string): Promise<string>;
}
export declare function getExtensionLockfileManager(lockfilePath?: string): ExtensionLockfileManager;
export declare function resetExtensionLockfileManager(): void;
export declare function loadExtensionLockfile(lockfilePath?: string): Promise<ExtensionsLockfile>;
export declare function saveExtensionLockfile(data: ExtensionsLockfile, lockfilePath?: string): Promise<void>;
