import { Optional } from '@guarani/types';
import { JsonWebKeyParams } from '../jwk/jsonwebkey.params';
import { SupportedJsonWebSignatureAlgorithm } from './algorithms/types/supported-jsonwebsignature-algorithm';
import { JsonWebSignatureHeaderParams } from './jsonwebsignature-header.params';
/**
 * Implementation of {@link https://www.rfc-editor.org/rfc/rfc7515.html#section-4 RFC 7515 Section 4}.
 */
export declare class JsonWebSignatureHeader implements JsonWebSignatureHeaderParams {
    /**
     * JSON Web Signature Algorithm used to Sign and Verify the Token.
     */
    readonly alg: SupportedJsonWebSignatureAlgorithm;
    /**
     * URI of a Set of Public JSON Web Keys that contains the JSON Web Key used to Sign the Token.
     */
    readonly jku?: Optional<string>;
    /**
     * JSON Web Key used to Sign the Token.
     */
    readonly jwk?: Optional<JsonWebKeyParams>;
    /**
     * Identifier of the JSON Web Key used to Sign the Token.
     */
    readonly kid?: Optional<string>;
    /**
     * URI of the X.509 certificate of the JSON Web Key used to Sign the Token.
     */
    readonly x5u?: Optional<string>;
    /**
     * Chain of X.509 certificates of the JSON Web Key used to Sign the Token.
     */
    readonly x5c?: Optional<string[]>;
    /**
     * SHA-1 Thumbprint of the X.509 certificate of the JSON Web Key used to Sign the Token.
     */
    readonly x5t?: Optional<string>;
    /**
     * SHA-256 Thumbprint of the X.509 certificate of the JSON Web Key used to Sign the Token.
     */
    readonly 'x5t#S256'?: Optional<string>;
    /**
     * Defines the type of the Token.
     */
    readonly typ?: Optional<string>;
    /**
     * Defines the type of the Payload of the Token.
     */
    readonly cty?: Optional<string>;
    /**
     * Defines the parameters that MUST be present in the JOSE Header.
     */
    readonly crit?: Optional<string[]>;
    /**
     * Instantiates a JSON Web Signature Header for Compact Serialization.
     *
     * @param params Parameters of the JSON Web Signature Header.
     */
    constructor(params: JsonWebSignatureHeaderParams);
    /**
     * Checks if the provided object conforms to the JSON Web Signature Header Specification.
     *
     * @param data Object to be inspected.
     */
    static isJsonWebSignatureHeader(data: unknown): data is JsonWebSignatureHeaderParams;
    /**
     * Returns the JSON Encoded String representation of the JSON Web Signature Header.
     */
    toString(): string;
}
