import type { Attachment, IMessage } from "didcomm";
import { PROTOCOLS } from "@djack-sdk/interfaces";
declare abstract class BaseMessage implements Partial<IMessage> {
    id: string;
    typ: string;
    from: string;
    to: string[];
    body: any;
    thid: string;
    attachments: Attachment[];
    pthid?: string | undefined;
    created_time?: number | undefined;
    expires_time?: number | undefined;
    from_prior?: string | undefined;
    abstract type: PROTOCOLS;
    constructor(data: Partial<IMessage>);
    get message(): import("didcomm-node").Message | import("../didcomm-wasm/didcomm_js").Message;
    is<T extends PROTOCOLS>(type: string | undefined): type is T;
}
export declare class ProtocolMessage extends BaseMessage {
    type: any;
    constructor(data: Partial<IMessage>);
}
export declare class ExchangeAuthenticateMessage extends ProtocolMessage {
    type: string;
    static fromJSON(json: Partial<IMessage>): Promise<ExchangeAuthenticateMessage>;
}
export declare class CredentialOfferRequestMessage extends ProtocolMessage {
    type: string;
    static fromJSON(json: Partial<IMessage>): Promise<CredentialOfferRequestMessage>;
    respond(message: Partial<IMessage>): CredentialOfferMessage;
}
export declare class CredentialOfferMessage extends ProtocolMessage {
    type: string;
    static fromJSON(json: Partial<IMessage>): Promise<CredentialOfferMessage>;
}
export declare class ExchangePresentationMessage extends ProtocolMessage {
    type: string;
    static fromJSON(json: Partial<IMessage>): Promise<ExchangePresentationMessage>;
}
export declare class ExchangeRequestPresentationMessage extends ProtocolMessage {
    type: string;
    static fromJSON(json: Partial<IMessage>): Promise<ExchangeRequestPresentationMessage>;
}
export declare class CredentialRequestMessage extends ProtocolMessage {
    type: string;
    static fromJSON(json: Partial<IMessage>): Promise<CredentialRequestMessage>;
}
export declare class CredentialIssueMessage extends ProtocolMessage {
    type: string;
    static fromJSON(json: Partial<IMessage>): Promise<CredentialIssueMessage>;
}
export declare class ExchangeDeliveryMessage extends ProtocolMessage {
    type: string;
    static fromJSON(json: Partial<IMessage>): Promise<ExchangeDeliveryMessage>;
}
export {};
