import { EmptyEmit, VueNode as VueNode$1 } from "../_util/type.js";
import { SemanticClassNamesType, SemanticStylesType } from "../_util/hooks/useMergeSemantic.js";
import "../_util/hooks/index.js";
import { SizeType } from "../config-provider/SizeContext.js";
import { ComponentBaseProps } from "../config-provider/context.js";
import * as vue249 from "vue";
import { CSSProperties, SlotsType } from "vue";

//#region src/spin/index.d.ts
type SpinSemanticName = keyof SpinSemanticClassNames & keyof SpinSemanticStyles;
interface SpinSemanticClassNames {
  root?: string;
  section?: string;
  indicator?: string;
  description?: string;
  container?: string;
  /** @deprecated Please use `description` instead */
  tip?: string;
  /** @deprecated Please use `root` instead */
  mask?: string;
}
interface SpinSemanticStyles {
  root?: CSSProperties;
  section?: CSSProperties;
  indicator?: CSSProperties;
  description?: CSSProperties;
  container?: CSSProperties;
  /** @deprecated Please use `description` instead */
  tip?: CSSProperties;
  /** @deprecated Please use `root` instead */
  mask?: CSSProperties;
}
type SpinClassNamesType = SemanticClassNamesType<SpinProps, SpinSemanticClassNames>;
type SpinStylesType = SemanticStylesType<SpinProps, SpinSemanticStyles>;
interface SpinProps extends ComponentBaseProps {
  /** Whether Spin is spinning */
  spinning?: boolean;
  /**
   * Note: `default` is deprecated and will be removed in v7, please use `medium` instead.
   */
  size?: SizeType | 'default';
  /** Customize description content when Spin has children */
  /** @deprecated Please use `description` instead */
  tip?: VueNode$1;
  description?: VueNode$1;
  /** Specifies a delay in milliseconds for loading state (prevent flush) */
  delay?: number;
  /** The className of wrapper when Spin has children */
  /** @deprecated Please use `classes.root` instead */
  wrapperClassName?: string;
  /** React node of the spinning indicator */
  indicator?: VueNode$1;
  /** Display a backdrop with the `Spin` component */
  fullscreen?: boolean;
  percent?: number | 'auto';
  classes?: SpinClassNamesType;
  styles?: SpinStylesType;
}
interface SpinSlots {
  indicator?: () => any;
  /** @deprecated Please use `description` instead */
  tip?: () => any;
  description?: () => any;
  default?: () => any;
}
declare const Spin: vue249.DefineSetupFnComponent<SpinProps, EmptyEmit, SlotsType<SpinSlots>, SpinProps, vue249.PublicProps>;
declare const _default: typeof Spin & {
  setDefaultIndicator: (indicator: VueNode$1) => void;
};
//#endregion
export { SpinClassNamesType, SpinProps, SpinSemanticClassNames, SpinSemanticName, SpinSemanticStyles, SpinSlots, SpinStylesType, _default as default };