import { Config, JID, Stanza, Status } from '@bidi/chat-client';
import { Action } from '@ngrx/store';
import { Channel, ChannelGroup, 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;
    STATUS_CHANGE: string;
    JOIN_ROOM: string;
    INCOMING_MESSAGE: string;
    OUTGOING_MESSAGE: 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: Config;
    readonly type: string;
    constructor(payload: Config);
}
export declare class ChatLoginSuccess implements Action {
    payload: {
        timestamp: number;
        jid: JID;
    };
    readonly type: string;
    constructor(payload: {
        timestamp: number;
        jid: JID;
    });
}
export declare class ChatLoginFailure implements Action {
    payload: {
        timestamp: number;
    };
    readonly type: string;
    constructor(payload: {
        timestamp: number;
    });
}
export declare class StatusChange implements Action {
    payload: Status;
    readonly type: string;
    constructor(payload: Status);
}
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: Stanza;
    timestamp: Date;
    readonly type: string;
    constructor(payload: Stanza, timestamp?: Date);
}
export declare class OutgoingMessage implements Action {
    payload: {
        to: Channel;
        message: string;
    };
    readonly type: string;
    constructor(payload: {
        to: Channel;
        message: string;
    });
}
