export interface ObjectEvent {
    label: string;
    name: string;
    eventNum: number;
    eventType: number;
    group: string;
}
export type ObjectEventName = (typeof objectEvents)[number]['name'];
export type ObjectEventLabel = (typeof objectEvents)[number]['label'];
interface ObjectAlarmEvent<N extends number> extends ObjectEvent {
    label: `Alarm ${N}`;
    name: `Alarm_${N}`;
    eventNum: N;
    eventType: 2;
    group: 'alarm';
}
/**
 * Mapping of GameMaker filenames to their corresponding
 * human-friendly event names.
 */
export declare const objectEvents: readonly [{
    readonly label: "Create";
    readonly name: "Create_0";
    readonly eventNum: 0;
    readonly eventType: 0;
    readonly group: "main";
}, {
    readonly label: "Destroy";
    readonly name: "Destroy_0";
    readonly eventNum: 0;
    readonly eventType: 1;
    readonly group: "cleanup";
}, {
    readonly label: "CleanUp";
    readonly name: "CleanUp_0";
    readonly eventNum: 0;
    readonly eventType: 12;
    readonly group: "cleanup";
}, {
    readonly label: "Room Start";
    readonly name: "Other_4";
    readonly eventNum: 4;
    readonly eventType: 7;
    readonly group: "cleanup";
}, {
    readonly label: "Room End";
    readonly name: "Other_5";
    readonly eventNum: 5;
    readonly eventType: 7;
    readonly group: "cleanup";
}, {
    readonly label: "Game End";
    readonly name: "Other_3";
    readonly eventNum: 3;
    readonly eventType: 7;
    readonly group: "cleanup";
}, {
    readonly label: "Pre-Draw";
    readonly name: "Draw_76";
    readonly eventNum: 76;
    readonly eventType: 8;
    readonly group: "draw";
}, {
    readonly label: "Draw Begin";
    readonly name: "Draw_72";
    readonly eventNum: 72;
    readonly eventType: 8;
    readonly group: "draw";
}, {
    readonly label: "Draw";
    readonly name: "Draw_0";
    readonly eventNum: 0;
    readonly eventType: 8;
    readonly group: "draw";
}, {
    readonly label: "Draw End";
    readonly name: "Draw_63";
    readonly eventNum: 63;
    readonly eventType: 8;
    readonly group: "draw";
}, {
    readonly label: "Post-Draw";
    readonly name: "Draw_77";
    readonly eventNum: 77;
    readonly eventType: 8;
    readonly group: "draw";
}, {
    readonly label: "Draw GUI Begin";
    readonly name: "Draw_74";
    readonly eventNum: 74;
    readonly eventType: 8;
    readonly group: "draw-gui";
}, {
    readonly label: "Draw GUI";
    readonly name: "Draw_64";
    readonly eventNum: 64;
    readonly eventType: 8;
    readonly group: "draw-gui";
}, {
    readonly label: "Draw GUI End";
    readonly name: "Draw_75";
    readonly eventNum: 75;
    readonly eventType: 8;
    readonly group: "draw-gui";
}, {
    readonly label: "Begin Step";
    readonly name: "Step_1";
    readonly eventNum: 1;
    readonly eventType: 3;
    readonly group: "step";
}, {
    readonly label: "Step";
    readonly name: "Step_0";
    readonly eventNum: 0;
    readonly eventType: 3;
    readonly group: "step";
}, {
    readonly label: "End Step";
    readonly name: "Step_2";
    readonly eventNum: 2;
    readonly eventType: 3;
    readonly group: "step";
}, ...({
    label: string;
    name: string;
    eventNum: number;
    eventType: number;
    group: string;
} | ObjectAlarmEvent<number> | {
    readonly label: "Animation Update";
    readonly name: "Other_58";
    readonly eventNum: 58;
    readonly eventType: 7;
    readonly group: "animation";
} | {
    readonly label: "Animation Event";
    readonly name: "Other_59";
    readonly eventNum: 59;
    readonly eventType: 7;
    readonly group: "animation";
} | {
    readonly label: "Async - HTTP";
    readonly name: "Other_62";
    readonly eventNum: 62;
    readonly eventType: 7;
    readonly group: "async";
} | {
    readonly label: "Async - System";
    readonly name: "Other_75";
    readonly eventNum: 75;
    readonly eventType: 7;
    readonly group: "async";
} | {
    readonly label: "Async - Social";
    readonly name: "Other_70";
    readonly eventNum: 70;
    readonly eventType: 7;
    readonly group: "async";
} | {
    readonly label: "Async - Save/Load";
    readonly name: "Other_72";
    readonly eventNum: 72;
    readonly eventType: 7;
    readonly group: "async";
} | {
    readonly label: "Async - Steam";
    readonly name: "Other_69";
    readonly eventNum: 69;
    readonly eventType: 7;
    readonly group: "async";
} | {
    readonly label: "Async - Dialog";
    readonly name: "Other_63";
    readonly eventNum: 63;
    readonly eventType: 7;
    readonly group: "async";
} | {
    readonly label: "Broadcast Message";
    readonly name: "Other_76";
    readonly eventNum: 76;
    readonly eventType: 7;
    readonly group: "broadcast message";
})[]];
/**
 * Given a GameMaker object event filename, get its human-friendly name. */
export declare function getEventFromFilename(filename: string): ObjectEvent | undefined;
export declare function getEventFromLabel(label: string): ObjectEvent | undefined;
export declare function getEventFrom(eventNum: number, eventType: number): ObjectEvent | undefined;
export {};
//# sourceMappingURL=lib.objects.d.ts.map