import { _PdfAbstractSyntaxElement } from '../asn1/abstract-syntax';
import { _PdfObjectIdentifier } from '../asn1/identifier-mapping';
/**
 * Represents a single X.509 extension (critical flag + value element).
 *
 * @private
 */
export declare class _PdfX509Extension {
    /**
     * Whether the extension is marked critical.
     *
     * @private
     * @type {boolean}
     */
    _critical: boolean;
    /**
     * The ASN.1 element containing the extension value.
     *
     * @private
     * @type {_PdfAbstractSyntaxElement}
     */
    _value: _PdfAbstractSyntaxElement;
    constructor(critical: boolean, value: _PdfAbstractSyntaxElement);
}
/**
 * Collection helper for X.509 extensions with lookup and sequencing utilities.
 *
 * @private
 */
export declare class _PdfX509Extensions {
    private _extensions;
    private _ordering;
    /**
     * OID for authorityKeyIdentifier extension.
     *
     * @private
     * @type {_PdfObjectIdentifier}
     */
    _authorityKeyIdentifier: _PdfObjectIdentifier;
    /**
     * OID for certificateRevocationListPoints extension.
     *
     * @private
     * @type {_PdfObjectIdentifier}
     */
    _certificateRevocationListPoints: _PdfObjectIdentifier;
    /**
     * OID for authorityInfoAccess extension.
     *
     * @private
     * @type {_PdfObjectIdentifier}
     */
    _authorityInfoAccess: _PdfObjectIdentifier;
    constructor(extensions?: Map<string, _PdfX509Extension>, ordering?: string[]);
    /**
     * Build extensions collection from an ASN.1 sequence of extension entries.
     *
     * @private
     * @param {_PdfAbstractSyntaxElement[]} sequence - ASN.1 extension sequence elements.
     * @returns {_PdfX509Extensions} Constructed extensions container.
     */
    _fromSequence(sequence: _PdfAbstractSyntaxElement[]): _PdfX509Extensions;
    /**
     * Normalize or construct a `_PdfX509Extensions` instance from various inputs.
     *
     * @private
     * @param {any} obj - Candidate extensions container or ASN.1 element.
     * @returns {_PdfX509Extensions} The resolved extensions instance.
     */
    _getInstance(obj: any): _PdfX509Extensions;
    /**
     * Lookup an extension by object identifier.
     *
     * @private
     * @param {_PdfObjectIdentifier} objectIdentifier - OID to search for.
     * @returns {_PdfX509Extension|null} The extension or null when not present.
     */
    _getExtension(objectIdentifier: _PdfObjectIdentifier): _PdfX509Extension | null;
}
/**
 * Base class for objects that expose X.509 extensions retrieval.
 *
 * @private
 */
export declare abstract class _PdfX509ExtensionBase {
    /**
     * Implemented by subclasses to return their extensions container.
     *
     * @private
     * @returns {_PdfX509Extensions}
     */
    abstract _getExtensions(): _PdfX509Extensions;
    /**
     * Convenience helper to retrieve a raw extension ASN.1 element by OID.
     *
     * @private
     * @param {_PdfObjectIdentifier} objectIdentifier - OID to lookup.
     * @returns {_PdfAbstractSyntaxElement} The extension value element or null.
     */
    _getExtension(objectIdentifier: _PdfObjectIdentifier): _PdfAbstractSyntaxElement;
}
