import * as vue55 from "vue";
import { TemplateRef } from "vue";

//#region src/composables/use-image-verify.d.ts
type OperationConfig = {
  figure?: number;
  arith?: '+' | '-' | '*';
};
type CharacterConfig = {
  length?: number;
  characterPool?: string;
};
type ImageVerifyOptionsBase = {
  width?: number;
  height?: number;
  refreshOnClick?: boolean;
  disturbLine?: number;
  disturbPoint?: number;
};
type ImageVerifyOptions = (ImageVerifyOptionsBase & {
  type: 'operation';
  config?: OperationConfig;
}) | (ImageVerifyOptionsBase & {
  type: 'character';
  config?: CharacterConfig;
});
declare function useImageVerify(templateRef: TemplateRef<HTMLCanvasElement>, options?: ImageVerifyOptions): {
  templateRef: Readonly<vue55.ShallowRef<HTMLCanvasElement | null>>;
  value: vue55.Ref<string, string>;
  code: vue55.Ref<string, string>;
  passed: vue55.ComputedRef<boolean>;
  validate: () => Promise<unknown>;
  reset: () => void;
  refresh: () => void;
};
type UseImageVerifyReturns = ReturnType<typeof useImageVerify>;
//#endregion
export { ImageVerifyOptions, UseImageVerifyReturns, useImageVerify };