import { RequestStatus } from "../request-status";
import { BloombergError, EventMessageInner } from "./types";
import { EventTypes } from "./event-types";
import { MessageTypes } from "./message-types";
import { SubscriptionInner } from "./types/subscription";
import { TerminalSubscription } from "./../bridge/types";
import { RequestId } from "./types/request-id";
export declare const isNew: (status: RequestStatus) => boolean;
export declare const isPending: (status: RequestStatus) => boolean;
export declare const isDone: (status: RequestStatus) => boolean;
export declare const isActive: (status: RequestStatus) => boolean;
/**
 *  Checks whether a Bloomberg message is of a particular message type.
 */
export declare function isMessageOfType(eventMessage: EventMessageInner, type: MessageTypes): boolean;
/**
 *  Checks whether a Bloomberg message is of a particular event type.
 */
export declare function isEventOfType(eventMessage: EventMessageInner, type: EventTypes): boolean;
/**
 * Extracts the actual message details.
 */
export declare function getMessageDetails<T>(eventMessage: EventMessageInner<T>, type: MessageTypes): T;
export interface MessageHandlerResult<T = any> {
    match: boolean;
    data?: T;
}
export declare function createResponseErrorHandler<TMsg>(messageType: MessageTypes, getError: (message: TMsg) => any, test?: (message: TMsg) => boolean): (eventMessage: EventMessageInner<TMsg>) => MessageHandlerResult<BloombergError>;
export declare function createResponseDataHandler<TMsg, TData>(messageType: MessageTypes, getData: (message: TMsg) => TData | undefined, test?: (message: TMsg) => boolean): (eventMessage: EventMessageInner<TMsg>) => MessageHandlerResult<TData>;
export declare function createErrorMessageHandler<T>(eventType: EventTypes, messageType: MessageTypes): (eventMessage: EventMessageInner<T>) => MessageHandlerResult<BloombergError>;
export declare function setSubscriptionIds(subscription: SubscriptionInner): SubscriptionInner;
export declare function setSubscriptionCreatedStatus(subscription: SubscriptionInner): SubscriptionInner;
export declare function toTerminalSubscription({ internalId, security, fields, options, }: SubscriptionInner): TerminalSubscription;
export declare function getFailureReason(id: RequestId, error: BloombergError | Error): string;
