import { IGenerator } from './IGenerator';
import { ILexGenerator } from './LexImportsGenerator';
import { Multiname } from '../abc/lazy/Multiname';
import { Scope } from '../run/Scope';
export interface ICallEntry {
    name?: Multiname;
    alias: string;
    isMangled: boolean;
    fromLex: boolean;
    index: number;
    isFunc?: boolean;
    methodAlias?: string;
    methodImport?: string;
}
/**
 * @description Generate a simple call instruction  (witout runtime checks) on lexed alliases
 */
export declare class FastCall implements IGenerator {
    lexer: ILexGenerator;
    scope: Scope;
    safeIntrDistance: number;
    private _active;
    private _imports;
    constructor(lexer: ILexGenerator, scope?: Scope);
    checkNameToCall(mn: Multiname, propname: string, lex?: boolean): boolean;
    mark(alias: string, index: number, isMangled: boolean, name?: Multiname, fromLex?: boolean): void;
    sureThatFast(stackAlias: string, method?: string): ICallEntry;
    getMethodAlias(stackAlias: string, method?: string): string | null;
    kill(stackAlias: string): void;
    killFar(index: number): void;
    genHeader(ident: string): string;
    genBody(): string;
    /**
     * Drop fastCall cache
     */
    drop(): void;
    genPost(arr: string[]): string[];
    reset(): void;
}
//# sourceMappingURL=FastCall.d.ts.map