import Channel from '../channels/channel'; export interface AuthOptions { params?: any; headers?: any; } export interface AuthData { auth: string; channel_data?: string; } export type AuthInfo = AuthData | string; export type AuthorizerCallback = (error: boolean, authInfo: AuthInfo) => void; export interface Authorizer { authorize(socketId: string, callback: AuthorizerCallback): void; } export interface AuthorizerGenerator { (channel: Channel, options: AuthorizerOptions): Authorizer; } export interface AuthorizerOptions { authTransport: 'ajax' | 'jsonp'; auth?: AuthOptions; authorizer?: AuthorizerGenerator; }