import type * as OpenFin from '../../../../OpenFin'; type ProviderIdentity = OpenFin.ProviderIdentity; export interface ChannelStrategy { onEndpointDisconnect(endpointId: string, listener: () => void): void; receive(listener: (action: string, payload: any, identity: any) => Promise): void; send(endpointId: string, action: string, payload: any): Promise; closeEndpoint(endpointId: string): Promise; close(): Promise; isEndpointConnected(endpointId: string): boolean; addEndpoint(endpointId: string, payload: T): void; isValidEndpointPayload(payload: unknown): payload is T; } export type EndpointIdentity = OpenFin.ClientIdentity | ProviderIdentity; export type EndpointPayload = { endpointIdentity: EndpointIdentity; }; export {};