import { AlgorithmIdentifier, CertificateSerialNumber, GeneralNames, PolicyInformation } from "@peculiar/asn1-x509";
import { Hash } from "./types";
/**
 * ```asn1
 * IssuerSerial ::= SEQUENCE {
 *      issuer                   GeneralNames,
 *      serialNumber             CertificateSerialNumber
 * }
 * ```
 */
export declare class IssuerSerial {
    issuer: GeneralNames;
    serialNumber: CertificateSerialNumber;
    constructor(params?: Partial<IssuerSerial>);
}
/**
 * ```asn1
 * ESSCertID ::=  SEQUENCE {
 *      certHash                 Hash,
 *      issuerSerial             IssuerSerial OPTIONAL
 * }
 * ```
 */
export declare class ESSCertID {
    certHash: Hash;
    issuerSerial?: IssuerSerial;
    constructor(params?: Partial<ESSCertID>);
}
/**
 * ```asn1
 * SigningCertificate ::=  SEQUENCE {
 *     certs        SEQUENCE OF ESSCertID,
 *     policies     SEQUENCE OF PolicyInformation OPTIONAL
 * }
 * ```
 */
export declare class SigningCertificate {
    certs: ESSCertID[];
    policies?: PolicyInformation[];
    constructor(params?: Partial<SigningCertificate>);
}
/**
 * ```asn1
 * ESSCertIDv2 ::=  SEQUENCE {
 *     hashAlgorithm           AlgorithmIdentifier
 *            DEFAULT {algorithm id-sha256},
 *     certHash                 Hash,
 *     issuerSerial             IssuerSerial OPTIONAL
 * }
 * ```
 */
export declare class ESSCertIDv2 {
    hashAlgorithm?: AlgorithmIdentifier;
    certHash: Hash;
    issuerSerial?: IssuerSerial;
    constructor(params?: Partial<ESSCertIDv2>);
}
/**
 * ```asn1
 * SigningCertificateV2 ::=  SEQUENCE {
 *     certs        SEQUENCE OF ESSCertIDv2,
 *     policies     SEQUENCE OF PolicyInformation OPTIONAL
 * }
 * ```
 */
export declare class SigningCertificateV2 {
    certs: ESSCertIDv2[];
    policies?: PolicyInformation[];
    constructor(params?: Partial<SigningCertificateV2>);
}
