/// <reference types="node" />
export declare type SecurityTimestamperRequestOptions = ({
    /**
     * URL string.
     */
    url: string;
    /**
     * Request method.
     */
    method?: string;
    /**
     * Request headers.
     */
    headers?: {
        [key: string]: string;
    };
    /**
     * Request body.
     */
    body?: any;
    /**
     * Body encoding used for callback functions.
     */
    encoding?: string | null;
});
export declare type SecurityTimestamperRequestResponse = ({
    /**
     * Status code.
     */
    statusCode: number;
});
export declare type SecurityTimestamperRequestCallback = (error: Error | null, response: SecurityTimestamperRequestResponse, body: any) => void;
export declare type SecurityTimestamperRequest = (obj: SecurityTimestamperRequestOptions, cb: SecurityTimestamperRequestCallback) => any;
/**
 * SecurityTimestamper constructor.
 *
 * @param url The timestamp server URL.
 */
export declare class SecurityTimestamper extends Object {
    /**
     * The timestamp server URL.
     */
    url: string;
    constructor(url: string);
    /**
     * Timestamp data digested with specified algorithm.
     *
     * @param digested The data to timestamp.
     * @param digest Digest algorithm.
     * @returns Timestamp data.
     */
    timestamp(digested: Readonly<Buffer>, digest: string): Promise<Buffer>;
    /**
     * Create a request object.
     *
     * @returns Request object.
     */
    protected _createRequest(): SecurityTimestamperRequest;
    /**
     * Send message request and return response or error on failure.
     *
     * @param message Encoded message.
     * @returns Encoded response.
     */
    protected _sendRequest(message: Readonly<Buffer>): Promise<Buffer>;
    /**
     * Encode request.
     *
     * @param digested Digested message.
     * @param digest Digest algorithm.
     * @returns Encoded request.
     */
    protected _encodeRequest(digested: Readonly<Buffer>, digest: string): Buffer;
    /**
     * Decode response.
     *
     * @param response Encoded response.
     * @returns Decoded response.
     */
    protected _decodeResponse(response: Readonly<Buffer>): Buffer;
}
