import { ISuperElement, ISuperHTMLElement, ISuperNode } from '@ulixee/awaited-dom/base/interfaces/super';
export default interface IDomState {
url?: string | RegExp;
all: IDomStateAllFn;
}
type IAwaitedNode = ISuperNode | ISuperElement | ISuperHTMLElement;
type DomNodeOrPromiseValue = T extends PromiseLike ? R : T extends IAwaitedNode ? T : never;
export type IDomStateAllFn = (options: IDomStateAssertions) => void;
export type IStateAndAssertion = [
statePromise: T,
assertionFnOrValue?: ((state: DomNodeOrPromiseValue) => boolean) | DomNodeOrPromiseValue
];
export type IDomStateAssertions = (statePromise: T, assertionFnOrValue?: ((state: DomNodeOrPromiseValue) => boolean) | DomNodeOrPromiseValue) => void;
export {};