import { Pusher as PusherInterface } from 'pusher-js';
export declare const PUSHER_CONNECT = "@@pusher/CONNECT";
export declare const PUSHER_DISCONNECT = "@@pusher/DISCONNECT";
export declare const PUSHER_CONNECTION_SUCCESS = "@@pusher/CONNECTION_SUCCESS";
export declare const PUSHER_CONNECTION_ERROR = "@@pusher/CONNECTION_ERROR";
/**
 * Dispatch this action to attempt to create a connection to pusher
 */
export interface PusherConnectAction {
    type: '@@pusher/CONNECT';
    key: string;
    cluster: string;
    options?: {
        [key: string]: any;
    };
}
/**
 * Dispatch this action to end the connection
 */
export interface PusherDisconnectAction {
    type: '@@pusher/DISCONNECT';
}
/**
 * This action will be emitted when the connection is successful
 */
export interface PusherConnectionSuccessAction {
    type: '@@pusher/CONNECTION_SUCCESS';
    client: PusherInterface;
    result: any;
}
/**
 * This action will be emitted when the connection is not successful
 */
export interface PusherConnectionErrorAction {
    type: '@@pusher/CONNECTION_ERROR';
    error: any;
}
export declare const pusherConnect: (key: string, cluster: string, options?: any) => PusherConnectAction;
export declare const pusherDisconnect: () => PusherDisconnectAction;
export declare const pusherConnectionSuccess: (client: PusherInterface, result: any) => PusherConnectionSuccessAction;
export declare const pusherConnectionError: (error: any) => PusherConnectionErrorAction;
