declare module '@ember/template-compiler/lib/types' {
    import type { ASTPluginEnvironment, builders, PrecompileOptions, PrecompileOptionsWithLexicalScope } from "@glimmer/syntax";
    export type Builders = typeof builders;
    export type PluginFunc = NonNullable<NonNullable<PrecompileOptionsWithLexicalScope["plugins"]>["ast"]>[number];
    export type LexicalScope = NonNullable<PrecompileOptionsWithLexicalScope["lexicalScope"]>;
    interface Plugins {
        ast: PluginFunc[];
    }
    export interface EmberPrecompileOptions extends PrecompileOptions {
        isProduction?: boolean;
        moduleName?: string;
        plugins?: Plugins;
        lexicalScope?: LexicalScope;
        /**
         * This supports template blocks defined in class bodies.
         *
         * Manual form:
         *
         * ```ts
         * class MyComponent {
         *   static {
         *     template(templateContent, {
         *       component: this,
         *       eval: () => eval(arguments[0])
         *     })
         *   }
         * }
         * ```
         *
         * GJS form (compiled to the manual form via `content-tag`):
         *
         * ```ts
         * class MyComponent {
         *   <template>Template Content</template>
         * }
         * ```
         */
        component?: object;
        eval?: (value: string) => unknown;
        scope?: () => Record<string, unknown>;
    }
    export type EmberASTPluginEnvironment = ASTPluginEnvironment & EmberPrecompileOptions;
    export {};
}