import { type TestLabel } from '@ephox/bedrock-client'; import { Optional } from '@ephox/katamari'; import { type SugarElement } from '@ephox/sugar'; export interface StringAssert { show: () => string; strAssert: (label: TestLabel, actual: string) => void; } export interface ArrayAssert { show: () => void; arrAssert: (label: TestLabel, array: any[]) => void; } export interface ElementQueue { context(): string; current(): Optional>; peek(): Optional>; take(): Optional>; mark(): { reset: () => void; atMark: () => boolean; }; } export interface StructAssertBasic { type?: 'basic'; doAssert: (actual: SugarElement) => void; } export interface StructAssertAdv { type: 'advanced'; doAssert: (queue: ElementQueue) => void; } export type StructAssert = StructAssertBasic | StructAssertAdv; export interface ElementFields { attrs?: Record; classes?: ArrayAssert[]; styles?: Record; html?: StringAssert; value?: StringAssert; children?: StructAssert[]; exactAttrs?: Record; exactClasses?: string[]; exactStyles?: Record; } declare const elementQueue: (items: SugarElement[], container: Optional>) => ElementQueue; declare const element: (tag: string, fields: ElementFields) => StructAssert; declare const text: (s: StringAssert, combineSiblings?: boolean) => StructAssert; declare const either: (structAsserts: StructAssert[]) => StructAssert; declare const repeat: (min: number, max?: number | true) => (structAssert: StructAssert) => StructAssert; declare const zeroOrOne: (structAssert: StructAssert) => StructAssert; declare const zeroOrMore: (structAssert: StructAssert) => StructAssert; declare const oneOrMore: (structAssert: StructAssert) => StructAssert; declare const anything: () => StructAssertBasic; declare const theRest: () => StructAssert; export { elementQueue, anything, element, text, either, repeat, zeroOrOne, zeroOrMore, oneOrMore, theRest }; //# sourceMappingURL=ApproxStructures.d.ts.map