import "@replikit/commands/typings"; import { ChannelParameterOptions } from "@replikit/storage/typings"; import { Channel, Member, User } from "@replikit/storage"; import { Parameters } from "@replikit/commands/typings"; import { AddRequired, Required, CommandBuilder as _CommandBuilder } from "@replikit/commands"; declare module "@replikit/commands/typings/parameterOptionMap" { export interface ParameterOptionMap { Channel: [Channel, ChannelParameterOptions]; } } export interface ChannelOptions { name?: T; required?: boolean; useInAuthorization?: boolean; } export interface UserOptions { name?: T; required?: boolean; } export interface MemberOptions< T extends string = "member", C extends string = "channel", U extends string = "user" > { name?: T; channelParameterName?: C; channelRequired?: boolean; useChannelInAuthorization?: boolean; userParameterName?: U; userRequired?: boolean; reverse?: boolean; } declare module "@replikit/commands/typings/commandBuilder" { export interface CommandBuilder< C = Record, P extends Parameters = Record > { channel(): AddRequired; channel( options?: ChannelOptions ): AddRequired; user(): AddRequired; user(options?: UserOptions): AddRequired; member(): _CommandBuilder< C, P & Required<"member", Member> & Required<"channel", Channel> & Required<"user", User> >; member< T extends string = "member", C extends string = "channel", U extends string = "user" >( options?: MemberOptions ): _CommandBuilder & Required & Required>; } }