import { GuildTextBasedChannel, Guild, Message, Role, TextChannel } from 'discord.js'; import { ExtendedInteraction, ExtendedMessage, CustomizableEmbed, CustomizableButton } from './typedef'; import { EndResolve } from './handler/manageGiveaway'; /** * **Documentation Url** of the type: https://simplyd.js.org/docs/systems/giveaway#requirements */ export interface Requirements { type: 'Role' | 'Guild' | 'None'; id: string; } /** * **Documentation Url** of the type: https://simplyd.js.org/docs/systems/giveaway#giveawaybuttons */ export interface GiveawayButtons { enter?: CustomizableButton; end?: CustomizableButton; reroll?: CustomizableButton; } /** * **Documentation Url** of the type: https://simplyd.js.org/docs/systems/giveaway#giveawayembeds */ export interface GiveawayEmbeds { giveaway?: CustomizableEmbed; load?: CustomizableEmbed; result?: CustomizableEmbed; } /** * **Documentation Url** of the options: https://simplyd.js.org/docs/systems/giveaway#giveawayoptions */ export declare type giveawayOptions = { prize?: string; winners?: number; channel?: GuildTextBasedChannel | TextChannel; time?: string; buttons?: GiveawayButtons; manager?: Role | string; requirements?: Requirements; pingRole?: Role | string; embed?: GiveawayEmbeds; type?: 'Label' | 'Emoji' | 'Both'; strict?: boolean; }; /** * **Documentation Url** of the resolve: https://simplyd.js.org/docs/systems/giveaway#giveawayresolve */ export interface GiveawayResolve { message: Message; winners: number; prize: string; endsAt: number; requirements: { type: 'None' | 'Role' | 'Guild'; value: Guild | Role; }; } /** * A **Powerful** yet simple giveaway system | *Required: **manageGiveaway() * @param msgOrInt * @param options * @link `Documentation:` https://simplyd.js.org/docs/systems/giveway * @example simplydjs.giveaway(interaction) */ export declare function giveaway(msgOrInt: ExtendedMessage | ExtendedInteraction, options?: giveawayOptions): Promise;