import { macNotarizationOptions } from "./commands/watch";
import { HsmSecretFile } from "./signing/secretClient";
import { EventEmitter } from "events";
type ReceiptStatus = "Pending" | "In Progress" | "Completed" | "Failed";
export type Receipt = {
    id: string;
    originalFile: string;
    receiptFile: string;
    requestFile: string;
    platform: Request["platform"];
    type?: Request["type"];
    provisioningProfile?: Request["provisioningProfile"];
    status: ReceiptStatus | "Signing" | "Notarizing";
    signingStatus?: ReceiptStatus;
    notarizationStatus?: ReceiptStatus;
    signingError?: string;
    notarizationError?: string;
    error?: string;
    secretName?: string;
    createdAt: string;
    updatedAt: string;
};
export type Request = {
    path: string;
    actions: ("sign" | "notarize" | "getCert" | "getSecret" | "getNotarizationCredentials")[];
    secretName?: string;
    platform?: "mas" | "mac" | "macPkg" | "win";
    type?: "distribution" | "development" | "installer";
    provisioningProfile?: string;
};
declare function writeReceipt(filePath: string, receipt: Receipt): Promise<void>;
declare let options: {
    macCert?: string;
    macInstallerCert?: string;
    masDevelopmentCert?: string;
    masDistributionCert?: string;
    masInstallerCert?: string;
    macNotarize?: macNotarizationOptions;
    windowsCert?: string;
    secrets?: Record<string, string>[];
};
export declare const createReceipt: (request: Request, requestPath: string, generateUUID?: () => string, writeReceiptFn?: typeof writeReceipt) => Promise<Receipt>;
export declare const updateReceipt: (receipt: Receipt, updates: Partial<Receipt>) => Promise<Receipt>;
export declare const codeSigningTask: (receipt: Receipt) => Promise<void>;
export declare const notarizationTask: (receipt: Receipt) => Promise<void>;
export declare function getCertTask(receipt: Receipt): Promise<HsmSecretFile>;
export declare function getSecretTask(receipt: Receipt): Promise<HsmSecretFile>;
export declare function getNotarizationCredentialsTask(receipt: Receipt): Promise<HsmSecretFile>;
export declare const handleNewFile: (requestPath: string) => Promise<void>;
export declare function doWatchFolder(_watchFolder: string, _options: typeof options): Promise<EventEmitter>;
export {};
