import type { ButtonComponent, DropdownComponent, ExtraButtonComponent, ValueComponent } from "obsidian"; import type { ReadonlyTuple } from "./types.js"; export declare function closeSetting(container: HTMLElement): void; export interface ComponentAction { readonly pre?: (component: C) => void; readonly post?: (component: C, activate: (value: V) => PromiseLike) => void; } export declare function linkSetting & { readonly onChange: (callback: (value: V) => unknown) => C; }>(getter: () => V, setter: (value: V, component: C, getter: () => V) => unknown, callback: (value: V, component: C, getter: () => V) => unknown, { pre, post }?: ComponentAction): (component: C) => void; export declare function composeSetters>(...setters: readonly ((value: V, component: C, getter: () => V) => unknown)[]): (value: V, component: C, getter: () => V) => Promise; export declare function setTextToEnum, V, C extends ValueComponent>(enums: Es, setter: (value: Es[number], component: C, getter: () => V) => unknown): (value: V, component: C, getter: () => V) => Promise; export declare function setTextToNumber>(setter: (value: number, component: C, getter: () => string) => unknown, integer?: boolean): (value: string, component: C, getter: () => string) => Promise; export declare function resetButton(icon: string, tooltip: string, resetter: (component: C) => unknown, callback: (component: C) => unknown, { pre, post }?: ComponentAction): (component: C) => void; export declare function dropdownSelect(unselected: string, selections: readonly { readonly name: string; readonly value: V; }[], callback: (value: V, component: C) => unknown, action?: ComponentAction): (component: C) => void; //# sourceMappingURL=settings-widgets.d.ts.map