import Renderer from './Renderer'; import Wrapper from './wrappers/shared/Wrapper'; import { Node, Identifier } from 'estree'; export interface Bindings { object: Identifier; property: Identifier; snippet: Node; store: string; modifier: (node: Node) => Node; } export interface BlockOptions { parent?: Block; name: Identifier; type: string; renderer?: Renderer; comment?: string; key?: Identifier; bindings?: Map; dependencies?: Set; } export default class Block { parent?: Block; renderer: Renderer; name: Identifier; type: string; comment?: string; wrappers: Wrapper[]; key: Identifier; first: Identifier; dependencies: Set; bindings: Map; binding_group_initialised: Set; chunks: { declarations: Array; init: Array; create: Array; claim: Array; hydrate: Array; mount: Array; measure: Array; restore_measurements: Array; fix: Array; animate: Array; intro: Array; update: Array; outro: Array; destroy: Array; }; event_listeners: Node[]; maintain_context: boolean; has_animation: boolean; has_intros: boolean; has_outros: boolean; has_intro_method: boolean; has_outro_method: boolean; outros: number; aliases: Map; variables: Map; get_unique_name: (name: string) => Identifier; has_update_method: boolean; autofocus?: { element_var: string; condition_expression?: any; }; constructor(options: BlockOptions); assign_variable_names(): void; add_dependencies(dependencies: Set): void; add_element(id: Identifier, render_statement: Node, claim_statement: Node, parent_node: Node, no_detach?: boolean): void; add_intro(local?: boolean): void; add_outro(local?: boolean): void; add_animation(): void; add_variable(id: Identifier, init?: Node): void; alias(name: string): Identifier; child(options: BlockOptions): Block; get_contents(key?: any): Node[]; has_content(): boolean; render(): Node[]; render_listeners(chunk?: string): void; }