import { CreateAccesstokenOptions, CreatedTransaction, CreateProjectOptions, CreateTransactionOptions, ListTransactionsOptions, ListTransactionsResult, MintblueOptions, Output, Project, UpdateProjectOptions } from '../types/mintblue.js';
import * as utils from './utils.js';
interface PigiAPIResponse {
    pigi: {
        version: number;
        algorithm: string;
        encryptedSize: number;
        _algorithmIndex: number;
        _idHex: string;
    };
    bitcoin?: {
        fee: number;
        size: number;
        txid: string;
        explore: {
            whatsonchain: string;
            blockchair: string;
        };
    };
    identifiers: {
        file: string[];
        raw: {
            fileid: string;
            secret: string;
            txid: string;
        };
        transaction: string[];
    };
    info: {
        file: string[];
        transaction: string[];
    };
}
export declare class Mintblue {
    /**
     * @ignore
     */
    private options;
    /**
     * @ignore
     */
    private api;
    /**
     * @ignore
     */
    constructor(options: MintblueOptions);
    /**
     * Instantiate client with accesstoken (SDK-token)
     *
     * @param options needs to contain accesstoken
     * @returns MintBlue SDK instance
     */
    static create(options: MintblueOptions): Promise<Mintblue>;
    /**
     * Instantiate client with login (e-mail and password)
     *
     * @param email
     * @param password
     * @param options optional options for advanced use
     * @returns MintBlue SDK instance
     */
    static login(email: string, password: string, options?: MintblueOptions): Promise<Mintblue>;
    /**
     * Create access token
     *
     * @param options
     * @returns SDK token & API token
     */
    createAccesstoken(options: CreateAccesstokenOptions): Promise<{
        sdkToken: string;
        apiToken: string;
    }>;
    /**
     * @ignore
     */
    createPigi(fileContent: Uint8Array): Promise<PigiAPIResponse>;
    /**
     * @ignore
     */
    createAPIOptions(options: CreateTransactionOptions): Promise<any>;
    /**
     * Create a blockchain transaction
     *
     * @param options
     * @returns Published transaction
     */
    createTransaction(options: CreateTransactionOptions): Promise<CreatedTransaction>;
    /**
     * Fetch a blockchain transaction
     *
     * @param txid Transaction ID of the blockchain transaction
     * @param secret Optional secret to decrypt content (Unnecessary when encrypted with your keys, decryption will automatically run)
     * @returns Array of decrypted & parsed outputs
     */
    getTransaction(txid: string, secret?: string): Promise<Output[]>;
    /**
     * @ignore
     */
    parseTransaction(txid: string, rawtx: string, secret?: string): Promise<Output[]>;
    /**
     * List transactions
     *
     * @param options
     * @returns Array of transactions (without payload)
     */
    listTransactions(options: ListTransactionsOptions): Promise<ListTransactionsResult>;
    /**
     * Create a project
     *
     * @param options
     * @returns Array of transactions (without payload)
     */
    createProject(options: CreateProjectOptions): Promise<Project>;
    /**
     * Fetch a project
     *
     * @param id Project ID
     * @returns Project properties
     */
    getProject(id: string): Promise<any>;
    /**
     * Update a project
     *
     * @param id Project ID
     * @param options Project properties
     * @returns Project properties
     */
    updateProject(id: string, options: UpdateProjectOptions): Promise<any>;
    /**
     * List all projects
     *
     * @returns List of projects
     */
    listProjects(): Promise<any>;
    /**
     * Delete a project
     *
     * @param id Project ID
     */
    destroyProject(id: string): Promise<any>;
    /**
     * @experimental
     * Get Peppol Key information
     * @returns Object containing uncompressed public key in hex format. \
     * Read more about compressed and decompressed keys [here](https://medium.com/asecuritysite-when-bob-met-alice/02-03-or-04-so-what-are-compressed-and-uncompressed-public-keys-6abcb57efeb6)
     */
    experimentalGetPeppolKeyInfo(): {
        uncompressedPublicKey: string;
        compressedPublicKey: string;
        jwk: utils.jose.JWK;
        kid: string;
        info: string;
    };
    /**
     * @experimental
     * Get Peppol Key information
     * @returns Object containing uncompressed public key in hex format. \
     * Read more about compressed and decompressed keys [here](https://medium.com/asecuritysite-when-bob-met-alice/02-03-or-04-so-what-are-compressed-and-uncompressed-public-keys-6abcb57efeb6)
     */
    experimentalGetKVKKeyInfo(): Promise<{
        uncompressedPublicKey: string;
        compressedPublicKey: string;
        jwk: utils.jose.JWK;
        kid: string;
        info: string;
        SHA1Fingerprint: string;
    }>;
    /**
     * @ignore
     */
    private parseOutput;
}
export {};
