import { Compilable } from '../compilable.js';
import { DefinitionContext } from '../context/index.js';
import { Call, Processor } from '../processor.js';
import { Tag } from '../service.js';
import { Maybe } from '../utils.js';
export declare abstract class Compiler extends Processor<Compilable> {
    private readonly extensions;
    private readonly parameters;
    private readonly aliases;
    private readonly services;
    protected glob(pattern: string): string[];
    protected getFullPath(baseFile: string, relative: string, shouldExist?: boolean): string;
    protected readContents(path: string): string;
    protected addExtend(path: string): void;
    protected addParameter(id: string, parameter: Compilable): void;
    protected addAlias(id: string, alias: Compilable): void;
    protected addService(id: string, service: Compilable): void;
    private getCompilableContext;
    protected processEnvStrValue(context: DefinitionContext, name: string, fallback: Maybe<string>): Compilable;
    protected processEnvBoolValue(context: DefinitionContext, name: string, fallback: Maybe<string>): Compilable;
    protected processEnvNumValue(context: DefinitionContext, name: string, fallback: Maybe<string>): Compilable;
    protected processEvalValue(context: DefinitionContext, code: string): Compilable;
    protected processLiteralValue(context: DefinitionContext, value: unknown): Compilable;
    protected processParameterValue(context: DefinitionContext, id: string): Compilable;
    protected processServiceValue(context: DefinitionContext, id: string): Compilable;
    private getExportedToken;
    protected processSymbolValue(context: DefinitionContext, path: string, name: Maybe<string>): Compilable;
    protected processTagListValue(context: DefinitionContext, name: string): Compilable;
    protected processTagObjectValue(context: DefinitionContext, name: string): Compilable;
    protected processAlias(context: DefinitionContext, aliased: string): Compilable;
    protected processConstructorService(context: DefinitionContext, symbol: Compilable, args: Compilable[], scope: string, tags: Tag[], calls: Call<Compilable>[]): Compilable;
    protected processFactoryService(context: DefinitionContext, symbol: Compilable, factory: Compilable, args: Compilable[], scope: string, tags: Tag[], calls: Call<Compilable>[]): Compilable;
    protected processPropertyService(context: DefinitionContext, symbol: Compilable, property: Compilable, scope: string, tags: Tag[], calls: Call<Compilable>[]): Compilable;
    private compileCall;
    compile(): string;
}
//# sourceMappingURL=compiler.d.ts.map