import { Phrase } from './phrase'; import { Void } from './void'; import { Text } from './text'; import { ComponentB } from './component'; import { Literal, Common, Close, WithElse, Else, For, Interpolate, ForTag } from './basic'; import { List, Media, ObjectP, Select, Table, Dl } from './special'; import { BaseComp, HTMLBrand } from './interface'; export interface BB { a: Block, 'a', Comps>; article: Block, 'article', Comps>; aside: Block, 'aside', Comps>; blockquote: Block, 'blockquote', Comps>; canvas: Block, 'canvas', Comps>; div: Block, 'div', Comps>; fieldset: Block, 'fieldset', Comps>; figure: Block, 'figure', Comps>; footer: Block, 'footer', Comps>; form: Block, 'form', Comps>; header: Block, 'header', Comps>; h1: Block, 'h1', Comps>; h2: Block, 'h2', Comps>; h3: Block, 'h3', Comps>; h4: Block, 'h4', Comps>; h5: Block, 'h5', Comps>; h6: Block, 'h6', Comps>; iframe: Block, 'iframe', Comps>; nav: Block, 'nav', Comps>; p: Block, 'p', Comps>; section: Block, 'section', Comps>; abbr: Phrase, 'abbr', Comps>; b: Phrase, 'b', Comps>; cite: Phrase, 'cite', Comps>; code: Phrase, 'code', Comps>; em: Phrase, 'code', Comps>; i: Phrase, 'i', Comps>; small: Phrase, 'small', Comps>; strong: Phrase, 'strong', Comps>; button: Phrase, 'button', Comps>; caption: Phrase, 'caption', Comps>; label: Phrase, 'label', Comps>; legend: Phrase, 'legend', Comps>; meter: Phrase, 'meter', Comps>; progress: Phrase, 'progress', Comps>; q: Phrase, 'q', Comps>; span: Phrase, 'span', Comps>; time: Phrase, 'time', Comps>; br: Void>; embed: Void>; hr: Void>; img: Void>; input: Void>; area: Void>; style: Text, 'style'>; script: Text, 'script'>; pre: Text, 'pre'>; textarea: Text, 'textarea'>; ul: List, 'ul', Comps>; ol: List, 'ol', Comps>; video: Media, 'video'>; audio: Media, 'audio'>; object: ObjectP>; select: Select>; table: Table, Comps>; dl: Dl, Comps>; for: For, Comps>>; tag(this: { tag: { else: any; }; }, comp: C): Else, 'tag', C, Comps>>; tag(this: { tag: { else: any; }; }, str: string): Else, 'tag', Comps>>; tag(comp: C): ComponentB, 'tag', C, Comps>; tag(str: string): Block, 'tag', Comps>; children(...children: Array): B; template: Block, 'template', Comps>; $: Interpolate>; } export declare type BC = { [K in keyof Comps]: ComponentB, K, Comps[K], Comps>; }; export declare type B = BB & BC & EndTag; export interface If { if

(this: { parent: P; }, condition: boolean): Common, End>, Comps>>; } export declare type _If = If & Common, Comps>>; export declare type Block = Literal<_If>;