import { Action } from '@ngrx/store';
import { Channel, ChannelGroup, ChatMessage, DistributionGroup } from '../../../models';
export declare const ChatActionTypes: {
    SET_USER: string;
    CREATE_CHANNELS_FROM_DISTRIBUTION_GROUPS: string;
    SELECT_GROUP: string;
    SELECT_CHANNEL: string;
    LOGIN: string;
    LOGIN_SUCCESS: string;
    LOGIN_FAILURE: string;
    JOIN_ROOM: string;
    INCOMING_MESSAGE: string;
    OUTGOING_MESSAGE: string;
};
export declare class SetUser implements Action {
    payload: {
        user: string;
        host: string;
    };
    readonly type: string;
    constructor(payload: {
        user: string;
        host: string;
    });
}
export declare class CreateChannelsFromDistributionGroups implements Action {
    payload: {
        groups: DistributionGroup[];
        host: string;
    };
    readonly type: string;
    constructor(payload: {
        groups: DistributionGroup[];
        host: string;
    });
}
export declare class SelectGroup implements Action {
    payload: ChannelGroup;
    readonly type: string;
    constructor(payload: ChannelGroup);
}
export declare class SelectChannel implements Action {
    payload: Channel;
    readonly type: string;
    constructor(payload: Channel);
}
export declare class ChatLogin implements Action {
    payload: {
        endpoint: string;
        user: string;
        password: string;
    };
    readonly type: string;
    constructor(payload: {
        endpoint: string;
        user: string;
        password: string;
    });
}
export declare class ChatLoginSuccess implements Action {
    payload: number;
    readonly type: string;
    constructor(payload: number);
}
export declare class ChatLoginFailure implements Action {
    payload: number;
    readonly type: string;
    constructor(payload: number);
}
export declare class JoinRoom implements Action {
    payload: {
        roomJid: string;
        userNick: string;
    };
    readonly type: string;
    constructor(payload: {
        roomJid: string;
        userNick: string;
    });
}
export declare class IncomingMessage implements Action {
    payload: ChatMessage;
    readonly type: string;
    constructor(payload: ChatMessage);
}
export declare class OutgoingMessage implements Action {
    payload: {
        to: Channel;
        message: string;
    };
    readonly type: string;
    constructor(payload: {
        to: Channel;
        message: string;
    });
}
