import type { AnyCommandContext } from '../CommandContext'; import type { SuppressorType } from '../constants/SuppressorType'; import type { CommandDefinition } from './CommandDefinition'; import type { AnySubCommandOption } from './CommandOption'; export interface Suppressor { /** Suppressor Type */ suppressor: SuppressorType | string; /** Supressor Function. Return of string or true will prevent execution */ suppress(ctx: AnyCommandContext, option?: SuppressorOption, ...args: Array): Promise; } export declare type SuppressorOption = CommandDefinition | AnySubCommandOption; export declare type SuppressorDefinition = (SuppressorType | string) | { type: SuppressorType | string; args?: Array | (() => Promise>); };