import { Context, Logger, Schema } from "koishi";

//#region src/config.d.ts
interface Config {
  isR18: boolean;
  r18P: number;
  excludeAI: boolean;
  isProxy: boolean;
  proxyHost: string;
  baseUrl: string;
  maxConcurrency: number;
  forwardMessage: boolean;
  defaultSourceProvider: string[];
  isLog: boolean;
  pixiv: {
    phpSESSID: string;
    userId: string;
  };
  danbooru?: {
    keyPairs: {
      login: string;
      apiKey: string;
    }[];
  };
  e621?: {
    keyPairs: {
      login: string;
      apiKey: string;
    }[];
  };
  gelbooru?: {
    keyPairs: {
      apiKey: string;
    }[];
  };
  lolibooru?: {
    keyPairs: {
      login: string;
      password: string;
    }[];
  };
  sankaku?: {
    keyPairs: {
      login: string;
      password: string;
      tokenType?: string;
      accessToken?: string;
    }[];
  };
  konachan?: {
    keyPairs: {
      login: string;
      password: string;
    }[];
  };
  yande?: {
    keyPairs: {
      login: string;
      password: string;
    }[];
  };
  imageProcessing: {
    confusion: boolean;
    compress: boolean;
    compressionLevel: number;
    isFlip: boolean;
    flipMode: 'horizontal' | 'vertical' | 'both';
  };
  autoRecall: {
    enable: boolean;
    delay: number;
  };
  messageBefore: string;
  showTags: boolean;
  apiDelay: number;
}
declare const Config: Schema<Config>;
declare const name = "pixluna";
//#endregion
//#region src/index.d.ts
declare let logger: Logger;
declare function apply(ctx: Context, config: Config): void;
//#endregion
export { Config, apply, logger, name };