import '../../src/tags/index'; import { FluxTag } from '../../src/tags/tag'; import { Utils } from '../utils/suite'; import { FluxCapacitor } from 'groupby-api'; import * as riot from 'riot'; export declare function tagSuite>({init, teardown, expect, spy, stub}: Utils, tests: (utils: TagUtils) => void, {tagName, mixin}: TagOptions): void; declare var _default: >(description: string, mixin: { [key: string]: any; } | ((utils: TagUtils) => void), tests?: (utils: TagUtils) => void) => void; export default _default; export declare function mixinFlux(obj?: any): FluxCapacitor; export declare function createTag(tag: string): HTMLElement; export declare function removeTag(html: HTMLElement): void; export interface TagUtils extends Utils { tagName: string; flux: () => FluxCapacitor; html: () => HTMLElement; mount: (opts?: any) => T; itMountsTag: () => void; } export interface TagOptions { tagName: string; mixin?: any; } export declare abstract class BaseModel> { protected tag: T; constructor(tag: T); protected readonly html: riot.TagElement; protected element(tag: HTMLElement, selector: string): T & HTMLElement; protected list(tag: HTMLElement, selector: string): NodeListOf; } export declare abstract class SelectModel extends BaseModel { readonly label: HTMLElement; readonly items: NodeListOf; readonly clearItem: HTMLElement; }