import { PublicKey } from '@wharfkit/antelope';
import { VCWithTypeType, VerifiableCredentialOptions, VerifiableCredentialWithType } from './ssi/vc';
import { Issuer } from '@tonomy/did-jwt-vc';
export declare class WalletRequest<T extends object = any> extends VerifiableCredentialWithType<T> {
    protected static type: string;
    /**
     * @inheritdoc override me if the payload type requires ad-hoc decoding
     */
    constructor(vc: VCWithTypeType<T>);
    /**
     * Alternative constructor that returns type WalletRequest. To be used in derived classes
     *
     * @access protected
     *
     * @param {object} payload the payload
     * @param {Issuer} issuer the issuer id
     * @param {VerifiableCredentialOptions} options the options
     *
     * @returns a WalletRequest object
     */
    protected static signWalletRequest<T extends object = object>(payload: T, issuer: Issuer, options?: VerifiableCredentialOptions): Promise<WalletRequest<T>>;
}
export type LoginRequestPayload = {
    randomString: string;
    origin: string;
    publicKey: PublicKey;
    callbackPath: string;
};
export declare class LoginRequest extends WalletRequest<LoginRequestPayload> {
    protected static type: string;
    /**
     * @override the VerifiableCredentialWithType constructor to decode the payload of type LoginRequestPayload
     */
    constructor(vc: LoginRequest | VCWithTypeType<LoginRequestPayload>);
    /**
     * Alternative constructor that returns type LoginRequest
     */
    static signRequest(payload: LoginRequestPayload, issuer: Issuer, options?: VerifiableCredentialOptions): Promise<LoginRequest>;
}
export type DataSharingRequestPayload = {
    username: boolean;
    origin: string;
};
export declare class DataSharingRequest extends WalletRequest<DataSharingRequestPayload> {
    protected static type: string;
    /**
     * Alternative constructor that returns type DataSharingRequest
     */
    static signRequest(payload: DataSharingRequestPayload, issuer: Issuer, options?: VerifiableCredentialOptions): Promise<DataSharingRequest>;
}
//# sourceMappingURL=request.d.ts.map