import { CodeError } from '@iotize/common/error';
import { TapResponseStatusError } from '@iotize/tap';
import { TapBundle } from './target-variable/tap-bundle/tap-bundle';
import { TapVariable } from './target-variable/tap-variable/tap-variable';
import { EditableDataStreamInterface, KeyTypeType } from './utility/editable-data-stream';
export declare class TapDataError extends CodeError<TapDataError.Code> {
    cause?: Error | undefined;
    constructor(msg: string, code: TapDataError.Code, cause?: Error | undefined);
    static unexpectedEncodedValueError(variable: EditableDataStreamInterface<any, any, any>, rawData: any, err: Error): TapDataError;
    static unexpectedVariableDataRead(variable: EditableDataStreamInterface<any, any, any>, rawData: any, err: Error): TapDataError;
    static bundleNotFound<KeyType extends KeyTypeType>(key: KeyType): TapDataError;
    static variableNotFound<KeyType extends KeyTypeType>(key: KeyType): TapDataError;
    static bundleNotConfigured(config: TapBundle.Config, err: TapResponseStatusError): TapDataError;
    static variableNotConfigured(config: TapVariable.Config, err: TapResponseStatusError): TapDataError;
}
export declare namespace TapDataError {
    enum Code {
        UnexpectedVariableData = "TapDataErrorUnexpectedVariableData",
        UnexpectedEncodedValueError = "TapDataErrorUnexpectedEncodedValueError",
        BundleNotFound = "TapDataErrorBundleNotFound",
        VariableNotFound = "TapDataErrorVariableNotFound",
        BundleNotConfigured = "TapDataErrorBundleNotConfigured",
        VariableNotConfigured = "TapDataErrorVariableNotConfigured"
    }
}
