import { Query } from './query'; export interface BehaviorConfig { /** Behavior name */ name: string; /** Namespace for storing behavior on element */ namespace?: string; /** Function that returns behavior instance */ createBehavior?: Function; /** Event handlers */ events?: Record; /** Mutation observers */ mutations?: Record; /** Shared behavior across instances */ sharedBehavior?: Record; /** Query element to initialize */ $element: Query; /** Query elements in group */ $elements: Query; /** CSS to be added to page */ css?: string; /** Query class reference */ Query: typeof Query; /** Allow data attributes to override settings */ allowDataOverride?: boolean; /** Callback when created */ onCreated?: Function; /** Callback when destroyed */ onDestroyed?: Function; /** Custom method invocation handler */ customInvocation?: Function; /** Index of element in group */ elementIndex?: number; /** Total elements in group */ totalElements?: number; /** CSS selectors */ selectors?: Record; /** CSS class names */ classNames?: Record; /** Error messages */ errors?: Record; /** Behavior settings */ settings?: Record; /** HTML templates */ templates?: Record; } export class Behavior { static TEMPLATING_REGEX: RegExp; constructor(config: BehaviorConfig); $: (selector: any, options?: any) => Query; Query: typeof Query; $element: Query; $elements: Query; element: Element; settings: Record; namespace: string; customInvocation: Function; onCreated: Function; onDestroyed: Function; elementIndex: number; totalElements: number; classNames: Record; selectors: Record; errors: Record; templates: Record; mutations: Record; sharedBehavior: Record; controller: AbortController; mutationObservers?: MutationObserver[]; events?: Record; adoptStylesheet(css: string): void; addDataOverrides(element?: Element): void; reinitialize(settings: BehaviorConfig): void; parseTemplate(templateString: string, data: Record): string; parseEventString(eventString: string): Array<{ eventName: string; eventType: string; selector: string; }>; getElementData(element?: Element): Record; attachEvents(events?: Record): void; attachMutations(mutations?: Record): void; removeMutations(): void; parseMutationString(mutationString: string): { observedElement: Element; keyword: string; observerOptions: MutationObserverInit; selector: string; }; getMutationCallbackArgs(mutations: MutationRecord[], additionalData?: Record): Record; removeEvents(): void; dispatchEvent( eventName: string, detail?: Record, eventSettings?: Record, options?: { element?: Element; namespace?: string; }, ): void; dispatchGroupEvent( eventName: string, detail?: Record, eventSettings?: Record, options?: { $elements?: Query; namespace?: string; }, ): void; lookup(query: string): any; callMethod(query: string, ...methodArgs: any[]): any; setting(name: string, value?: any): any; settings(newSettings?: Record): Record | this; call(func: Function, options?: { additionalParams?: Record; }): any; destroy(): void; static getInstance(element: Element, namespace: string): Behavior | undefined; static runSetup( setup?: Function, config?: { $elements?: Query; settings?: any; templates?: any; }, ): Record; }