import type { Client, Guild, GuildMember, User, VoiceState } from "discord.js";
import { AmariLevel, CachedOptions, ColorType, MEEShitLevel, Users } from "../interfaces";
export declare function random(min: number, max: number): number;
/**
 * @private
 */
export declare function getClientIntents(client: Client): number;
/**
 * @private
 */
export declare function incUserStat(user: CachedOptions<Users>, type: string, count?: number, remove?: boolean): {
    name: string;
    count: number;
}[];
/**
 * @private
 */
export declare function getVoiceMultiplier(state: VoiceState): number;
/**
 * @private
 */
export declare function parser(obj: Record<string, unknown>, options: Record<string, string>, opt: {
    guild: Guild;
    member: GuildMember;
    user: User;
}): Promise<object>;
export declare function xpFor(level: number): number;
/**
 * @private
 */
export declare function getUserAvatar(user: User | null): string;
/**
 * @private
 */
export declare function save(db: {
    save: () => Promise<unknown>;
}): Promise<unknown>;
export declare function tog(bool: boolean): boolean;
/**
 * @private
 */
export declare function getGuildIcon(guild: Guild | null): string | null;
export declare const colors: {
    readonly types: readonly ["canvacord.username", "canvacord.progress.thumb", "arcane.progress.first", "arcane.progress.second", "arcane.username", "arcane.background.first", "arcane.background.second"];
    readonly hex: {
        readonly white: "#fafaff";
        readonly blue: "#4287f5";
    };
    readonly get: (db: CachedOptions<Users>, type: ColorType, includeDef?: boolean) => string | undefined;
    readonly valid: (type: ColorType | string) => boolean;
};
/**
 * @private
 */
export declare function isThisWeek(date: Date): boolean;
/**
 * @private
 */
export declare function fetchAllUsers(guildId: string, type?: "mee6" | "amari"): Promise<{
    id: string;
    username: string;
    messages: number;
    xp: number;
    level: number;
    raw: AmariLevel | MEEShitLevel;
}[]>;
/**
 * @private
 */
export declare function getData(db: CachedOptions<Users>): {
    xp: {
        current: number;
        required: number;
    };
    level: number;
};
