import type TypedEventEmitter from 'typed-emitter';
import type { EventDirtyPayload, EventDongPayload, EventErrorPayload, EventFriendshipPayload, EventLoginPayload, EventLogoutPayload, EventMessagePayload, EventPostPayload, EventResetPayload, EventRoomJoinPayload, EventRoomLeavePayload, EventRoomTopicPayload, EventRoomInvitePayload, EventScanPayload, EventReadyPayload, EventHeartbeatPayload } from '../schemas/event.js';
export declare type PuppetDirtyListener = (payload: EventDirtyPayload) => void | Promise<void>;
export declare type PuppetDongListener = (payload: EventDongPayload) => void | Promise<void>;
export declare type PuppetErrorListener = (payload: EventErrorPayload) => void | Promise<void>;
export declare type PuppetFriendshipListener = (payload: EventFriendshipPayload) => void | Promise<void>;
export declare type PuppetHeartbeatListener = (payload: EventHeartbeatPayload) => void | Promise<void>;
export declare type PuppetLoginListener = (payload: EventLoginPayload) => void | Promise<void>;
export declare type PuppetLogoutListener = (payload: EventLogoutPayload) => void | Promise<void>;
export declare type PuppetMessageListener = (payload: EventMessagePayload) => void | Promise<void>;
export declare type PuppetPostListener = (payload: EventPostPayload) => void | Promise<void>;
export declare type PuppetReadyListener = (payload: EventReadyPayload) => void | Promise<void>;
export declare type PuppetResetListener = (payload: EventResetPayload) => void | Promise<void>;
export declare type PuppetRoomInviteListener = (payload: EventRoomInvitePayload) => void | Promise<void>;
export declare type PuppetRoomJoinListener = (payload: EventRoomJoinPayload) => void | Promise<void>;
export declare type PuppetRoomLeaveListener = (payload: EventRoomLeavePayload) => void | Promise<void>;
export declare type PuppetRoomTopicListener = (payload: EventRoomTopicPayload) => void | Promise<void>;
export declare type PuppetScanListener = (payload: EventScanPayload) => void | Promise<void>;
export declare type PuppetStartListener = () => void | Promise<void>;
export declare type PuppetStopListener = () => void | Promise<void>;
interface PuppetEventListener {
    dirty: PuppetDirtyListener;
    dong: PuppetDongListener;
    error: PuppetErrorListener;
    friendship: PuppetFriendshipListener;
    heartbeat: PuppetHeartbeatListener;
    login: PuppetLoginListener;
    logout: PuppetLogoutListener;
    message: PuppetMessageListener;
    post: PuppetPostListener;
    ready: PuppetReadyListener;
    reset: PuppetResetListener;
    'room-invite': PuppetRoomInviteListener;
    'room-join': PuppetRoomJoinListener;
    'room-leave': PuppetRoomLeaveListener;
    'room-topic': PuppetRoomTopicListener;
    scan: PuppetScanListener;
    start: PuppetStartListener;
    stop: PuppetStopListener;
}
declare const PuppetEventEmitter: new () => TypedEventEmitter<PuppetEventListener>;
declare type PuppetEventName = keyof PuppetEventListener;
export type { PuppetEventListener, PuppetEventName, };
export { PuppetEventEmitter, };
//# sourceMappingURL=events.d.ts.map