import { Awaitable, Client, ClientOptions, Snowflake, UserResolvable } from "discord.js"; import { z } from "zod"; import type { AkairoClientEvents } from "../typings/events.js"; import { ArrayOrNot } from "../typings/Util.js"; import * as ClientUtil from "./ClientUtil.js"; export declare class AkairoClient extends Client { ownerID: Snowflake | Snowflake[]; superUserID: Snowflake | Snowflake[]; util: typeof ClientUtil; constructor(options: AkairoClientOptions & ClientOptions); constructor(options: AkairoClientOptions, clientOptions: ClientOptions); isOwner(user: UserResolvable): boolean; isSuperUser(user: UserResolvable): boolean; } type Events = AkairoClientEvents; export interface AkairoClient extends Client { on(event: K, listener: (...args: Events[K]) => Awaitable): this; on(event: Exclude, listener: (...args: any[]) => Awaitable): this; once(event: K, listener: (...args: Events[K]) => Awaitable): this; once(event: Exclude, listener: (...args: any[]) => Awaitable): this; emit(event: K, ...args: Events[K]): boolean; emit(event: Exclude, ...args: unknown[]): boolean; off(event: K, listener: (...args: Events[K]) => Awaitable): this; off(event: Exclude, listener: (...args: any[]) => Awaitable): this; removeAllListeners(event?: K): this; removeAllListeners(event?: Exclude): this; } export type AkairoClientOptions = { ownerID?: ArrayOrNot; superUserID?: ArrayOrNot; }; export declare const AkairoClientOptions: z.ZodObject<{ ownerID: z.ZodOptional]>>; superUserID: z.ZodOptional]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ ownerID: z.ZodOptional]>>; superUserID: z.ZodOptional]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ ownerID: z.ZodOptional]>>; superUserID: z.ZodOptional]>>; }, z.ZodTypeAny, "passthrough">>; export {}; //# sourceMappingURL=AkairoClient.d.ts.map