import Upsert, { Insertion, CautiousInsertion, TrustingInsertion } from '../../upsert'; import { DOMTreeConstruction } from '../../dom/helper'; import { UpdatingOpcode } from '../../opcodes'; import { CompiledExpression } from '../expressions'; import { VM } from '../../vm'; import { Reference, ReferenceCache } from '@glimmer/reference'; import { Opaque } from '@glimmer/util'; import { Cursor } from '../../bounds'; import { Fragment } from '../../builder'; import { Environment } from '../../environment'; import { SymbolTable } from '@glimmer/interfaces'; export declare function normalizeTextValue(value: Opaque): string; export declare type AppendDynamicOpcodeConstructor = typeof OptimizedCautiousAppendOpcode | typeof OptimizedTrustingAppendOpcode; export declare abstract class AppendDynamicOpcode { protected abstract normalize(reference: Reference): Reference; protected abstract insert(dom: DOMTreeConstruction, cursor: Cursor, value: T): Upsert; protected abstract updateWith(vm: VM, reference: Reference, cache: ReferenceCache, bounds: Fragment, upsert: Upsert): UpdatingOpcode; evaluate(vm: VM): void; } export declare abstract class GuardedAppendOpcode extends AppendDynamicOpcode { private expression; private symbolTable; protected abstract AppendOpcode: typeof OptimizedCautiousAppendOpcode | typeof OptimizedTrustingAppendOpcode; private start; private end; constructor(expression: CompiledExpression, symbolTable: SymbolTable); evaluate(vm: VM): void; deopt(env: Environment): number; } export declare class OptimizedCautiousAppendOpcode extends AppendDynamicOpcode { type: string; protected normalize(reference: Reference): Reference; protected insert(dom: DOMTreeConstruction, cursor: Cursor, value: CautiousInsertion): Upsert; protected updateWith(_vm: VM, _reference: Reference, cache: ReferenceCache, bounds: Fragment, upsert: Upsert): UpdatingOpcode; } export declare class GuardedCautiousAppendOpcode extends GuardedAppendOpcode { type: string; protected AppendOpcode: typeof OptimizedCautiousAppendOpcode; protected normalize(reference: Reference): Reference; protected insert(dom: DOMTreeConstruction, cursor: Cursor, value: CautiousInsertion): Upsert; protected updateWith(vm: VM, reference: Reference, cache: ReferenceCache, bounds: Fragment, upsert: Upsert): UpdatingOpcode; } export declare class OptimizedTrustingAppendOpcode extends AppendDynamicOpcode { type: string; protected normalize(reference: Reference): Reference; protected insert(dom: DOMTreeConstruction, cursor: Cursor, value: TrustingInsertion): Upsert; protected updateWith(_vm: VM, _reference: Reference, cache: ReferenceCache, bounds: Fragment, upsert: Upsert): UpdatingOpcode; } export declare class GuardedTrustingAppendOpcode extends GuardedAppendOpcode { type: string; protected AppendOpcode: typeof OptimizedTrustingAppendOpcode; protected normalize(reference: Reference): Reference; protected insert(dom: DOMTreeConstruction, cursor: Cursor, value: TrustingInsertion): Upsert; protected updateWith(vm: VM, reference: Reference, cache: ReferenceCache, bounds: Fragment, upsert: Upsert): UpdatingOpcode; }