import { DataObject } from "../../composables/useDataRequest.js";
import { PresetSelectEmits, PresetSelectExpose, PresetSelectProps, PresetSelectValue } from "./index.js";
import * as _vueuse_core41 from "@vueuse/core";
import * as vue78 from "vue";
import { SelectInst, SelectOption } from "naive-ui";

//#region src/components/preset-select/PresetSelect.vue.d.ts
declare const __VLS_export: <V extends PresetSelectValue, P extends DataObject, D extends DataObject, R extends DataObject>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
  props: vue78.PublicProps & __VLS_PrettifyLocal<PresetSelectProps<V, P, D, R> & {
    onSuccess?: ((data: D, params: P[]) => any) | undefined;
    onError?: ((err: Error, params: P[]) => any) | undefined;
    onClear?: (() => any) | undefined;
    onBlur?: ((ev: FocusEvent) => any) | undefined;
    onFocus?: ((ev: FocusEvent) => any) | undefined;
    onScroll?: ((ev: Event) => any) | undefined;
    "onUpdate:value"?: ((val: V | null, option: SelectOption | SelectOption[] | null, raw: R | R[] | null) => any) | undefined;
    onSearch?: ((value: string) => any) | undefined;
    onFinally?: ((params: P[], data?: D | undefined, err?: Error | undefined) => any) | undefined;
    onBefore?: ((params: P[]) => any) | undefined;
    "onUpdate:page"?: ((page: number) => any) | undefined;
    "onUpdate:pageSize"?: ((pageSize: number) => any) | undefined;
    onCreate?: ((label: string) => any) | undefined;
  }> & (typeof globalThis extends {
    __VLS_PROPS_FALLBACK: infer P_1;
  } ? P_1 : {});
  expose: (exposed: vue78.ShallowUnwrapRef<PresetSelectExpose<P, D, R>>) => void;
  attrs: any;
  slots: {
    header?: (props: {
      loading: boolean;
      data: D | undefined;
      error: Error | undefined;
      params: [] | P[];
      list: R[];
      pagination: {
        page: number;
        pageSize: number;
        itemCount: number;
      } | {
        page: number;
        pageSize: number;
        itemCount: number;
      };
      selectRef: SelectInst | null;
      run: (...params: P[]) => void;
      runAsync: (...params: P[]) => Promise<D>;
      refresh: () => void;
      refreshAsync: () => Promise<D>;
      cancel: () => void;
      mutate: (data?: D | ((oldData?: D | undefined) => D | undefined) | undefined) => void;
      setParams: (_params: Partial<P>) => void;
      runParams: (_params: Partial<P>) => void;
      runParamsAsync: (_params: Partial<P>) => Promise<D>;
      onBefore: _vueuse_core41.EventHookOn<[P[]]>;
      onSuccess: _vueuse_core41.EventHookOn<[D, P[]]>;
      onError: _vueuse_core41.EventHookOn<[Error, P[]]>;
      onFinally: _vueuse_core41.EventHookOn<[P[], D | undefined, Error | undefined]>;
    }) => any;
  } & {
    footer?: (props: {
      loading: boolean;
      data: D | undefined;
      error: Error | undefined;
      params: [] | P[];
      list: R[];
      pagination: {
        page: number;
        pageSize: number;
        itemCount: number;
      } | {
        page: number;
        pageSize: number;
        itemCount: number;
      };
      selectRef: SelectInst | null;
      run: (...params: P[]) => void;
      runAsync: (...params: P[]) => Promise<D>;
      refresh: () => void;
      refreshAsync: () => Promise<D>;
      cancel: () => void;
      mutate: (data?: D | ((oldData?: D | undefined) => D | undefined) | undefined) => void;
      setParams: (_params: Partial<P>) => void;
      runParams: (_params: Partial<P>) => void;
      runParamsAsync: (_params: Partial<P>) => Promise<D>;
      onBefore: _vueuse_core41.EventHookOn<[P[]]>;
      onSuccess: _vueuse_core41.EventHookOn<[D, P[]]>;
      onError: _vueuse_core41.EventHookOn<[Error, P[]]>;
      onFinally: _vueuse_core41.EventHookOn<[P[], D | undefined, Error | undefined]>;
    }) => any;
  } & {
    'footer-extra'?: (props: {
      loading: boolean;
      data: D | undefined;
      error: Error | undefined;
      params: [] | P[];
      list: R[];
      pagination: {
        page: number;
        pageSize: number;
        itemCount: number;
      } | {
        page: number;
        pageSize: number;
        itemCount: number;
      };
      selectRef: SelectInst | null;
      run: (...params: P[]) => void;
      runAsync: (...params: P[]) => Promise<D>;
      refresh: () => void;
      refreshAsync: () => Promise<D>;
      cancel: () => void;
      mutate: (data?: D | ((oldData?: D | undefined) => D | undefined) | undefined) => void;
      setParams: (_params: Partial<P>) => void;
      runParams: (_params: Partial<P>) => void;
      runParamsAsync: (_params: Partial<P>) => Promise<D>;
      onBefore: _vueuse_core41.EventHookOn<[P[]]>;
      onSuccess: _vueuse_core41.EventHookOn<[D, P[]]>;
      onError: _vueuse_core41.EventHookOn<[Error, P[]]>;
      onFinally: _vueuse_core41.EventHookOn<[P[], D | undefined, Error | undefined]>;
    }) => any;
  } & {
    empty?: (props: {
      loading: boolean;
      data: D | undefined;
      error: Error | undefined;
      params: [] | P[];
      list: R[];
      pagination: {
        page: number;
        pageSize: number;
        itemCount: number;
      } | {
        page: number;
        pageSize: number;
        itemCount: number;
      };
      selectRef: SelectInst | null;
      run: (...params: P[]) => void;
      runAsync: (...params: P[]) => Promise<D>;
      refresh: () => void;
      refreshAsync: () => Promise<D>;
      cancel: () => void;
      mutate: (data?: D | ((oldData?: D | undefined) => D | undefined) | undefined) => void;
      setParams: (_params: Partial<P>) => void;
      runParams: (_params: Partial<P>) => void;
      runParamsAsync: (_params: Partial<P>) => Promise<D>;
      onBefore: _vueuse_core41.EventHookOn<[P[]]>;
      onSuccess: _vueuse_core41.EventHookOn<[D, P[]]>;
      onError: _vueuse_core41.EventHookOn<[Error, P[]]>;
      onFinally: _vueuse_core41.EventHookOn<[P[], D | undefined, Error | undefined]>;
    }) => any;
  } & {
    arrow?: (props: {
      loading: boolean;
      data: D | undefined;
      error: Error | undefined;
      params: [] | P[];
      list: R[];
      pagination: {
        page: number;
        pageSize: number;
        itemCount: number;
      } | {
        page: number;
        pageSize: number;
        itemCount: number;
      };
      selectRef: SelectInst | null;
      run: (...params: P[]) => void;
      runAsync: (...params: P[]) => Promise<D>;
      refresh: () => void;
      refreshAsync: () => Promise<D>;
      cancel: () => void;
      mutate: (data?: D | ((oldData?: D | undefined) => D | undefined) | undefined) => void;
      setParams: (_params: Partial<P>) => void;
      runParams: (_params: Partial<P>) => void;
      runParamsAsync: (_params: Partial<P>) => Promise<D>;
      onBefore: _vueuse_core41.EventHookOn<[P[]]>;
      onSuccess: _vueuse_core41.EventHookOn<[D, P[]]>;
      onError: _vueuse_core41.EventHookOn<[Error, P[]]>;
      onFinally: _vueuse_core41.EventHookOn<[P[], D | undefined, Error | undefined]>;
    }) => any;
  };
  emit: PresetSelectEmits<V, P, D, R>;
}>) => vue78.VNode & {
  __ctx?: Awaited<typeof __VLS_setup>;
};
declare const _default: typeof __VLS_export;
type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
//#endregion
export { _default };