/// <reference types="node" />
import * as jose from 'jose';
export interface PeppolInfo {
    type: 'peppol';
    version: 1;
    value: Buffer;
    pubKey: string;
    options?: {
        extra: any;
    };
    encryptedData: Buffer;
}
export interface PeppolOutput {
    type: 'peppol';
    /** Protocol version */
    version: 1;
    /** Content (AS4 payload) to publish encrypted to blockchain. */
    value: Buffer;
    /** Uncompressed public key in hex format or JWK format */
    pubKey: string | jose.JWK;
    /** Optional key to add digital signature in JWK format */
    signingKey?: jose.JWK;
    /** Optional extra data to publish in blockchain transaction */
    options?: {
        extra: Buffer;
    };
}
export interface PeppolParseOptions {
    data: Buffer;
    privateKey: jose.JWK;
    pubKey: string;
    verifyKey?: jose.JWK;
}
export declare class PeppolV1 {
    static PROTOCOL_ID: string;
    readonly createOptions: PeppolOutput | null;
    readonly parseOptions: PeppolParseOptions | null;
    readonly info: PeppolInfo;
    private constructor();
    static create(options: PeppolOutput): Promise<PeppolV1>;
    static parse(options: PeppolParseOptions): Promise<PeppolV1>;
    static fromOpReturnScriptHex(script: string, options: Omit<PeppolParseOptions, 'data' | 'pubKey'>): Promise<PeppolV1>;
    toOpReturnScriptHex(): string;
}
