import { YyObject, YyObjectEvent, YyObjectEventName, YyObjectEventNumber } from '@bscotch/yy';
import { GmlToken } from '../../parser/GmlToken.js';
import { GmlTokenVersioned } from '../../parser/GmlTokenVersioned.js';
import type { StitchProjectComms } from '../../StitchProject.js';
import { Gms2ResourceBase, Gms2ResourceBaseParameters } from './Gms2ResourceBase.js';
export declare class Gms2ObjectEvent {
    protected data: YyObjectEvent;
    readonly dir: string;
    readonly io: StitchProjectComms;
    constructor(data: YyObjectEvent, dir: string, io: StitchProjectComms);
    get eventNum(): number;
    get eventType(): number;
    /**
     * @example
     * "Draw"
     */
    get name(): "Create" | "Destroy" | "Alarm" | "Step" | "Draw" | "Cleanup";
    /**
     * @example
     * "Draw_0"
     */
    get fullName(): string;
    get fileName(): string;
    get filePath(): string;
    get code(): string;
    set code(code: string);
}
export declare class Gms2Object extends Gms2ResourceBase<YyObject> {
    constructor(...setup: Gms2ResourceBaseParameters);
    get parentName(): string | undefined;
    /**
     * Set this object's parent object.
     * **WARNING** does not check if that object exists.
     */
    set parentName(name: string | undefined);
    get spriteName(): string | undefined;
    set spriteName(name: string | undefined);
    get codeFilePathsAbsolute(): string[];
    findEvent(eventType: YyObjectEventName | YyObjectEventNumber, eventNum?: number): Gms2ObjectEvent | undefined;
    protected addEvent(eventType: YyObjectEventNumber, eventNum?: number): Gms2ObjectEvent;
    addCreateEvent(): Gms2ObjectEvent;
    events(): Gms2ObjectEvent[];
    findTokenReferences(token: GmlToken, options?: {
        suffix?: string;
        includeSelf?: boolean;
    }): GmlTokenVersioned[];
    /**
     * Create a new object
     * @param subimageDirectory Absolute path to a directory containing the
     *                          subimages for this sprite. Will non-recursively
     *                          search for png images within that directory
     *                          and sort them alphabetically.
     */
    static create(name: string, comms: StitchProjectComms): Promise<Gms2Object>;
}
//# sourceMappingURL=Gms2Object.d.ts.map