import { ConfigParserFn, CustomOverrideCriteriaFunctions, PermissionLevels, PluginOptions } from "./configTypes"; import { MatchParams } from "./configUtils"; import { AnyPluginData } from "../plugins/PluginData"; import { BasePluginType } from "../plugins/pluginTypes"; import { APIInteractionGuildMember, Channel, GuildMember, Message, PartialUser, User } from "discord.js"; export interface ExtendedMatchParams extends MatchParams { channelId?: string | null; member?: GuildMember | APIInteractionGuildMember | null; message?: Message | null; channel?: Channel | null; } export interface PluginConfigManagerOpts { levels: PermissionLevels; parser: ConfigParserFn; customOverrideCriteriaFunctions?: CustomOverrideCriteriaFunctions>; } export declare class PluginConfigManager { private readonly defaultOptions; private readonly userInput; private readonly levels; private readonly customOverrideCriteriaFunctions?; private readonly parser; private pluginData?; private initialized; private parsedOptions; constructor(defaultOptions: PluginOptions, userInput: unknown, opts: PluginConfigManagerOpts); init(): Promise; protected getParsedOptions(): PluginOptions; protected getMemberLevel(member: GuildMember | APIInteractionGuildMember): number | null; setPluginData(pluginData: AnyPluginData): void; get(): TPluginType["config"]; getMatchingConfig(matchParams: ExtendedMatchParams): Promise; getForMessage(msg: Message): Promise; getForChannel(channel: Channel): Promise; getForUser(user: User | PartialUser): Promise; getForMember(member: GuildMember): Promise; }