import { Event } from '../lib';
import { Log } from './log';
import { Choice } from './lib/choice';
import { PlayerInfo } from './lib/info';
export declare const EVENT_NEXTPHASE: string;
export declare const EVENT_PULL_LOGS: string;
export declare const EVENT_PHASE_DAY: string;
export declare const EVENT_PHASE_NIGHT: string;
export declare const EVENT_MIDNIGHT: string;
export declare const EVENT_LYNCH: string;
export declare const EVENT_VOTE: string;
export declare const EVENT_OPENCHOICE: string;
export declare const EVENT_CHOICE: string;
export declare const EVENT_DIE: string;
export declare const EVENT_JUDGE: string;
export declare const EVENT_QUERY_COUNT: string;
export declare const EVENT_QUERY_VOTEDONE: string;
export declare const EVENT_QUERY_PLAYERINFO: string;
export declare function initNextPhaseEvent(): Event;
export declare function initPhaseDayEvent(): Event;
export declare function initPhaseNightEvent(): Event;
export declare function initMidnightEvent(): Event;
export interface PullLogsEvent extends Event {
    logs: Array<Log>;
}
export declare function initPullLogsEvent(): PullLogsEvent;
export interface VoteEvent extends Event {
    from: string;
    to: string;
    num: number;
    priority: number;
}
export declare function initVoteEvent(obj: {
    from: string;
    to: string;
    num: number;
    priority: number;
}): VoteEvent;
export interface LynchEvent extends Event {
    voteResult: string | undefined;
}
export declare function initLynchEvent(): LynchEvent;
export interface OpenChoiceEvent extends Event {
    on: string;
    kind: string;
    options: Array<Choice>;
}
export declare function initOpenChoiceEvent(obj: {
    on: string;
    kind: string;
    options: Array<Choice>;
}): OpenChoiceEvent;
export interface ChoiceEvent extends Event {
    from: string;
    choice_id: string;
    value: string;
}
export declare function initChoiceEvent(obj: {
    from: string;
    choice_id: string;
    value: string;
}): ChoiceEvent;
export interface DieEvent extends Event {
    on: string;
    reason: string;
}
export declare function initDieEvent(obj: {
    on: string;
    reason: string;
}): DieEvent;
export interface JudgeEvent extends Event {
    end: boolean;
    draw: boolean;
    result: string | undefined;
}
export declare function initJudgeEvent(): JudgeEvent;
export interface QueryCountEvent extends Event {
    on: string;
    count: string;
}
export declare function initQueryCountEvent(on: string): QueryCountEvent;
export interface QueryVotedoneEvent extends Event {
    on: string;
    result: boolean;
}
export declare function initQueryVotedoneEvent(on: string): QueryVotedoneEvent;
export interface QueryPlayerInfoEvent extends Event {
    on: string;
    result: PlayerInfo;
}
export declare function initQueryPlayerInfoEvent(on: string): QueryPlayerInfoEvent;
