import type { YyScript } from '@bscotch/yy';
import { GmlToken } from '../../parser/GmlToken.js';
import type { StitchProjectComms } from '../../StitchProject.js';
import { Gms2ResourceBase, Gms2ResourceBaseParameters } from './Gms2ResourceBase.js';
export declare class Gms2Script extends Gms2ResourceBase<YyScript> {
    private codeCache;
    private globalFunctionCache?;
    constructor(...setup: Gms2ResourceBaseParameters);
    get codeFilePathAbsolute(): string;
    set code(code: string);
    get code(): string;
    /**
     * Get all functions defined in this script that will be globally available.
     * (Only returns outer-scope named functions.)
     */
    get globalFunctions(): GmlToken[];
    /**
     * Find all references to a token. ⚠ WARNING: does not consider scope or type!
     */
    findTokenReferences(token: GmlToken, options?: {
        suffix?: string;
        includeSelf?: boolean;
    }): import("../../parser/GmlTokenVersioned.js").GmlTokenVersioned[];
    private purgeCaches;
    static create(name: string, code: string, comms: StitchProjectComms): Promise<Gms2Script>;
}
//# sourceMappingURL=Gms2Script.d.ts.map