export type Validated = "valid" | "partial" | "invalid" | "";
export type UploadKey = "manifest" | "compose" | "cmdline" | "ovmf" | "initrd" | "kernel";
export type UploadValue = {
    kind: "manifest";
    value: unknown;
} | {
    kind: Exclude<UploadKey, "manifest">;
    value: Uint8Array;
};
export type UploadsMap = Partial<Record<UploadKey, UploadValue["value"]>>;
export interface UploadVerification {
    azureUKIPcrLog?: string;
    azureUKIPcrHash: {
        value: string;
        validated: Validated;
    };
    azureUKIPcr: {
        value: string;
        validated: Validated;
    };
    azureUKIKernel?: string;
    azureUKICmdLine?: string;
    azureUKIRootFSHash?: string;
    azureUKIInitRDLate?: string;
}
export interface VCompContainerInfo {
    did: {
        value: string;
        validated: Validated;
    };
    signedBy: {
        value: string;
        validated: Validated;
    };
    dockerComposeId: {
        value: string;
        validated: Validated;
    };
    dockerImages: {
        images: Array<{
            name: string;
            sha256: string;
        }>;
        validated: Validated;
    };
}
export interface VCompSystemInfo {
    did: {
        value: string;
        validated: Validated;
    };
    cpu: {
        report: {
            value: string | null;
            validated: Validated;
        };
        reportParsed: unknown | null;
        type: "intel" | "amd" | "azure" | null;
        measurements: {
            mrtd: {
                value: string;
                validated: Validated;
            };
            rtmr0: {
                value: string;
                validated: Validated;
            };
            rtmr1: {
                value: string;
                validated: Validated;
            };
            rtmr2: {
                value: string;
                validated: Validated;
            };
            mrconfigid?: string;
            mrownerconfig?: string;
            mrowner?: string;
            xfam?: string;
            tdattributes?: string;
            rootfs: {
                value: string;
                validated: Validated;
            };
            amdMeasurement: {
                value: string;
                validated: Validated;
            };
            amdReportData?: string;
        };
        certificate: {
            x509: string | null;
            chain: unknown[] | null;
            validated: Validated;
        };
        hardwareVerifyUrl: string | null;
    };
    gpu: {
        report: {
            value: string | null;
            validated: Validated;
        };
        reportData: string | null;
        certificate: {
            x509: {
                value: Buffer | null;
                validated: Validated;
            };
            chain: unknown[] | null;
        };
        hardwareVerifyUrl: string | null;
    };
    azure: {
        bootLog: {
            value: string | null;
        };
        bootLogHash: {
            value: string | null;
            validated: Validated;
        };
        tpmAKCertificate: {
            value: string | null;
            validated: Validated;
        };
        tpmLog: string | null;
        tpmQuote: {
            value: string | null;
            validated: Validated;
        };
        tpmQuoteSignature: {
            value: string | null;
            validated: Validated;
        };
        tpmPCRHash: {
            value: string | null;
            validated: Validated;
        };
        tpmNotaryHex: {
            value: string | null;
            validated: Validated;
        };
        tpmNotaryDID: {
            value: string | null;
            validated: Validated;
        };
        azureTPMAKKey: {
            value: string | null;
            validated: Validated;
        };
        azureAKTPMPubKey: {
            value: string | null;
            validated: Validated;
        };
    };
}
export interface ParsedManifest {
    containers: Record<string, VCompContainerInfo>;
    systems: Record<string, VCompSystemInfo>;
}
/**
 * Detect upload kind(s) from a File and return detected values
 * Mirrors the order and checks from main.js's parseFile
 */
export declare function detectUploadsFromFile(file: File): Promise<UploadValue[]>;
/**
 * Verify uploaded blobs against parsed manifest measurements where feasible.
 * Returns simple booleans that a component can use to decorate the UI.
 */
export declare function verifyUploads(uploads: UploadsMap, parsed: ParsedManifest): Promise<UploadVerification>;
declare function parse(MANIFEST: unknown): Promise<ParsedManifest>;
export { parse };
