import { CodeError } from '@iotize/common/error';
import { ApduResponse, TapRequestFrame, TapResponseFrame } from '@iotize/tap/client/api';
export declare class TapClientError extends CodeError<TapClientError.Code> {
    cause?: Error | undefined;
    constructor(code: TapClientError.Code, message: string, cause?: Error | undefined);
    static illegalArgument(msg: string): TapClientError;
    static illegalStateError(msg: string): TapClientError;
    static encodeRequestError(command: TapRequestFrame, cause: Error): TapClientError;
    static decodeResponseError(cause: Error, frameOrCommand: Uint8Array | TapRequestFrame): TapClientError;
    static notConnectedError(): TapClientError;
    static cannotDecodeResponseError(err: Error, bufferData: Uint8Array): TapClientError;
    static unexpectedApduStatusCode(apduResponse: ApduResponse): TapClientError;
    static cannotEncodeRequest(err: Error, tapRequest: TapRequestFrame): TapClientError;
}
export declare namespace TapClientError {
    enum Code {
        NotConnectedError = "TapClientErrorNotConnected",
        EncodeRequestError = "TapClientErrorEncodeRequest",
        IllegalArgumentError = "TapClientErrorIllegalArgument",
        IllegalStateError = "TapClientErrorIllegalState",
        DecodeResponseError = "TapClientErrorDecodeResponse",
        UnexpectedTapResponse = "TapClientErrorUnexpectedTapResponse",
        UnexpectedApduResponseStatus = "TapClientErrorUnexpectedApduResponseStatus",
        CannotEncodeRequest = "TapClientErrorCannotEncodeRequest",
        TapClientResponseStatusError = "TapClientErrorResponseStatus"
    }
}
export declare class TapClientResponseStatusError extends TapClientError {
    response: TapResponseFrame;
    request?: TapRequestFrame | undefined;
    constructor(response: TapResponseFrame, request?: TapRequestFrame | undefined);
    static createErrorMessage(response: TapResponseFrame, request?: TapRequestFrame): string;
}
