import EventEmitter from 'eventemitter3';
import Config from '../../config';
import { Article, Board } from './model';
declare class Bot extends EventEmitter {
    static initialState: {
        connect: boolean;
        login: boolean;
    };
    static forwardEvents: string[];
    searchCondition: {
        conditions: any;
        init: () => void;
        add: (type: any, criteria: any) => void;
    };
    private config;
    private term;
    private _state;
    private currentCharset;
    private socket;
    private preventIdleHandler;
    constructor(config?: Config);
    init(): Promise<void>;
    readonly state: any;
    getLine: (n: any) => any;
    getLines(): Promise<any[]>;
    send(msg: string): Promise<boolean>;
    preventIdle(timeout: number): void;
    login(username: string, password: string, kick?: boolean): Promise<any>;
    logout(): Promise<boolean>;
    private checkLogin;
    private checkArticleWithHeader;
    select(model: any): any;
    /**
     * @deprecated
     */
    setSearchCondition(type: string, criteria: string): void;
    /**
     * @deprecated
     */
    resetSearchCondition(): void;
    /**
     * @deprecated
     */
    isSearchConditionSet(): boolean;
    /**
     * @deprecated
     */
    getArticles(boardname: string, offset?: number): Promise<Article[]>;
    /**
     * @deprecated
     */
    getArticle(boardname: string, id: number, article?: Article): Promise<Article>;
    /**
     * @deprecated
     */
    getFavorite(offsets?: number | number[]): Promise<Board[]>;
    getMails(offset?: number): Promise<any[]>;
    getMail(sn: number): Promise<{
        sn: number;
        author: string;
        title: string;
        timestamp: string;
        lines: any[];
    }>;
    enterIndex(): Promise<boolean>;
    readonly currentBoardname: string | undefined;
    /**
     * @deprecated
     */
    enterBoard(boardname: string): Promise<boolean>;
    enterBoardByName(boardname: string): Promise<boolean>;
    enterByOffset(offsets?: number[]): Promise<boolean>;
    enterBoardByOffset(offsets?: number[]): Promise<boolean>;
    enterFavorite(offsets?: number[]): Promise<boolean>;
    enterMail(): Promise<boolean>;
}
export default Bot;
