import { FilterPattern } from "unplugin";

//#region src/options.d.ts
interface BaseOptions {
  include?: FilterPattern;
  exclude?: FilterPattern;
  version?: number;
  isProduction?: boolean;
}
type MarkRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
type DefineComponentOptions = {
  alias?: string[];
  autoReturnFunction?: boolean;
};
type DefineModelOptions = {
  alias?: string[];
};
type DefineExposeOptions = {
  alias?: string[];
};
type DefineSlotsOptions = {
  alias?: string[];
};
type DefineStyleOptions = {
  alias?: string[];
};
type Options = BaseOptions & {
  defineComponent?: DefineComponentOptions;
  defineModel?: DefineModelOptions;
  defineExpose?: DefineExposeOptions;
  defineSlots?: DefineSlotsOptions;
  defineStyle?: DefineStyleOptions;
};
type OptionsResolved = MarkRequired<Options, 'include' | 'version'> & {
  defineComponent: MarkRequired<DefineComponentOptions, 'alias'>;
  defineModel: MarkRequired<DefineModelOptions, 'alias'>;
  defineExpose: MarkRequired<DefineExposeOptions, 'alias'>;
  defineSlots: MarkRequired<DefineSlotsOptions, 'alias'>;
  defineStyle: MarkRequired<DefineStyleOptions, 'alias'>;
};
declare function resolveOptions(options: Options): OptionsResolved;
//#endregion
export { resolveOptions as i, Options as n, OptionsResolved as r, BaseOptions as t };