using System; using System.Collections.Generic; namespace Discord.Interactions.Builders { /// /// Represent a command builder for creating . /// public interface IParameterBuilder { /// /// Gets the parent command of this parameter. /// ICommandBuilder Command { get; } /// /// Gets the name of this parameter. /// string Name { get; } /// /// Gets the type of this parameter. /// Type ParameterType { get; } /// /// Gets whether this parameter is required. /// bool IsRequired { get; } /// /// Gets whether this parameter is . /// bool IsParameterArray { get; } /// /// Gets the default value of this parameter. /// object DefaultValue { get; } /// /// Gets a collection of the attributes of this command. /// IReadOnlyCollection Attributes { get; } /// /// Gets a collection of the preconditions of this command. /// IReadOnlyCollection Preconditions { get; } /// /// Sets . /// /// New value of the . /// /// The builder instance. /// IParameterBuilder WithName(string name); /// /// Sets . /// /// New value of the . /// /// The builder instance. /// IParameterBuilder SetParameterType(Type type); /// /// Sets . /// /// New value of the . /// /// The builder instance. /// IParameterBuilder SetRequired(bool isRequired); /// /// Sets . /// /// New value of the . /// /// The builder instance. /// IParameterBuilder SetDefaultValue(object defaultValue); /// /// Adds attributes to . /// /// New attributes to be added to . /// /// The builder instance. /// IParameterBuilder AddAttributes(params Attribute[] attributes); /// /// Adds preconditions to . /// /// New attributes to be added to . /// /// The builder instance. /// IParameterBuilder AddPreconditions(params ParameterPreconditionAttribute[] preconditions); } }