import { DirectiveIndex } from './directive_record';
import { ProtoRecord } from './proto_record';
export declare var __esModule: boolean;
export declare class ChangeDetectorJITGenerator {
    typeName: string;
    changeDetectionStrategy: string;
    records: List<ProtoRecord>;
    directiveRecords: List<any>;
    localNames: List<string>;
    changeNames: List<string>;
    fieldNames: List<string>;
    pipeNames: List<string>;
    constructor(typeName: string, changeDetectionStrategy: string, records: List<ProtoRecord>, directiveRecords: List<any>);
    getLocalNames(records: List<ProtoRecord>): List<string>;
    getChangeNames(localNames: List<string>): List<string>;
    getFieldNames(localNames: List<string>): List<string>;
    getPipeNames(localNames: List<string>): List<string>;
    generate(): Function;
    genConstructor(): string;
    genHydrate(): string;
    getDirectiveFieldNames(): List<string>;
    getDetectorFieldNames(): List<string>;
    getDirective(d: DirectiveIndex): string;
    getDetector(d: DirectiveIndex): string;
    genFieldDefinitions(): string;
    getNonNullPipeNames(): List<string>;
    genDetectChanges(): string;
    genCallOnAllChangesDone(): string;
    genDetectChangesBody(): string;
    genLocalDefinitions(): string;
    genChangeDefinitions(): string;
    genRecord(r: ProtoRecord): string;
    genPipeCheck(r: ProtoRecord): string;
    genReferenceCheck(r: ProtoRecord): string;
    genUpdateCurrentValue(r: ProtoRecord): string;
    getContext(r: ProtoRecord): string;
    ifChangedGuard(r: ProtoRecord, body: string): string;
    genInterpolation(r: ProtoRecord): string;
    genLiteral(value: any): string;
    genUpdateDirectiveOrElement(r: ProtoRecord): string;
    genAddToChanges(r: ProtoRecord): string;
    genLastInDirective(r: ProtoRecord): string;
    genNotifyOnChanges(r: ProtoRecord): string;
    genNotifyOnPushDetectors(r: ProtoRecord): string;
    genArgs(r: ProtoRecord): string;
}
