import { SearchPanelEmits, SearchPanelItem, SearchPanelProps } from './src/types'; import { default as TxSearchPanel } from './src/TxSearchPanel.vue'; /** * TxSearchPanel — inline command search: field, live results and empty state in * one card. Unlike `TxCommandPalette` it is not modal — no overlay, no focus * trap — so it can sit inside a page, a sidebar or a popover. * * @example * ```ts * import { TxSearchPanel } from '@talex-touch/tuffex' * * // * ``` * * @public */ declare const SearchPanel: { new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins & Readonly<{ onSelect?: ((item: SearchPanelItem) => any) | undefined; onClear?: (() => any) | undefined; "onUpdate:modelValue"?: ((value: string) => any) | undefined; onQueryChange?: ((value: string) => any) | undefined; }>, { focus: () => void | undefined; blur: () => void | undefined; clear: () => void; }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & { select: (item: SearchPanelItem) => any; clear: () => any; "update:modelValue": (value: string) => any; queryChange: (value: string) => any; }, import('vue').PublicProps, { disabled: boolean; placeholder: string; modelValue: string; items: SearchPanelItem[]; minHeight: number | string; clearable: boolean; idleCount: number; emptyThreshold: number; emptyTitle: string; emptyDescription: string; clearLabel: string; listLabel: string; }, false, {}, {}, Record, Record, string, { inputRef: HTMLInputElement; }, HTMLDivElement, import('vue').ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, Readonly & Readonly<{ onSelect?: ((item: SearchPanelItem) => any) | undefined; onClear?: (() => any) | undefined; "onUpdate:modelValue"?: ((value: string) => any) | undefined; onQueryChange?: ((value: string) => any) | undefined; }>, { focus: () => void | undefined; blur: () => void | undefined; clear: () => void; }, {}, {}, {}, { disabled: boolean; placeholder: string; modelValue: string; items: SearchPanelItem[]; minHeight: number | string; clearable: boolean; idleCount: number; emptyThreshold: number; emptyTitle: string; emptyDescription: string; clearLabel: string; listLabel: string; }>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & import('vue').ComponentOptionsBase & Readonly<{ onSelect?: ((item: SearchPanelItem) => any) | undefined; onClear?: (() => any) | undefined; "onUpdate:modelValue"?: ((value: string) => any) | undefined; onQueryChange?: ((value: string) => any) | undefined; }>, { focus: () => void | undefined; blur: () => void | undefined; clear: () => void; }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & { select: (item: SearchPanelItem) => any; clear: () => any; "update:modelValue": (value: string) => any; queryChange: (value: string) => any; }, string, { disabled: boolean; placeholder: string; modelValue: string; items: SearchPanelItem[]; minHeight: number | string; clearable: boolean; idleCount: number; emptyThreshold: number; emptyTitle: string; emptyDescription: string; clearLabel: string; listLabel: string; }, {}, string, {}, Record, Record, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => { $slots: Readonly<{ item?: (props: { item: SearchPanelItem; active: boolean; query: string; }) => any; empty?: (props: { query: string; }) => any; footer?: () => any; }> & { item?: (props: { item: SearchPanelItem; active: boolean; query: string; }) => any; empty?: (props: { query: string; }) => any; footer?: () => any; }; }) & import('vue').Plugin; export { SearchPanel, TxSearchPanel }; export type { SearchPanelEmits, SearchPanelItem, SearchPanelProps }; export type TxSearchPanelInstance = InstanceType; export default SearchPanel;