///
///
import { EventEmitter } from 'events';
import type * as OpenFin from '../OpenFin';
import { ExistingConnectConfig, InternalConnectConfig, RemoteConfig, Wire, WireConstructor } from './wire';
import { Environment } from '../environment/environment';
import { RuntimeErrorPayload } from './transport-errors';
import EventAggregator from '../api/events/eventAggregator';
import { EntityTypeHelpers } from '../api/me';
import { ProtocolMap } from '../shapes/protocol';
import { NamedEvent } from '../api/events/base';
import { ErrorPlainObject } from '../util/errors';
type EntityType = OpenFin.EntityType;
type SendActionResponse = Message<{
data: ProtocolMap[T]['response'];
} & ProtocolMap[T]['specialResponse']>;
export type MessageHandler = (data: any) => boolean;
export type SentMessage = Promise & {
cancel: (reason?: any) => void;
messageId: ReturnType;
};
type NackHandler = (payloadOrMessage: RuntimeErrorPayload | string) => void;
export declare class Transport extends EventEmitter {
#private;
protected wireListeners: Map void;
}>;
protected uncorrelatedListener: Function;
me: OpenFin.EntityInfo & EntityTypeHelpers;
environment: Environment;
topicRefMap: Map;
sendRaw: Wire['send'];
eventAggregator: EventAggregator;
protected messageHandlers: MessageHandler[];
constructor(WireType: WireConstructor, environment: Environment, config: OpenFin.Identity);
getFin(): OpenFin.Fin;
registerFin(_fin: OpenFin.Fin): void;
connectSync: () => void;
getPort: () => string;
shutdown(): Promise;
connect(config: InternalConnectConfig | RemoteConfig): Promise;
private connectRemote;
connectByPort(config: ExistingConnectConfig): Promise;
private authorize;
sendAction(action: T, payload?: ProtocolMap[T]['request'], uncorrelated?: boolean): SentMessage>;
protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: NodeJS.CallSite[]): void;
ferryAction(origData: any): Promise>;
registerMessageHandler(handler: MessageHandler): void;
protected addWireListener(id: number, resolve: Function, handleNack: NackHandler, uncorrelated: boolean): void;
protected onmessage(data: Message): void;
protected handleMessage(data: Message): boolean;
}
export interface Message {
action: string;
payload: T;
correlationId?: number;
}
export interface EventMessage extends Message {
action: 'process-desktop-event';
payload: NamedEvent;
}
export type Payload = {
success: Success;
data: Success extends true ? Data : never;
reason: Success extends false ? string : never;
error?: Success extends false ? ErrorPlainObject | undefined : never;
};
export interface AuthorizationPayload {
token: string;
file: string;
}
export {};