import { CommandContext, StringReader, Suggestions } from '../../../brigadier/src/index.ts';
import { default as CommandParameter, CommandParameterFlags } from '../network/type/CommandParameter';
import { Vector3 } from '../../../math/src/index.ts';
import { default as Player } from '../Player';
import { default as Server } from '../Server';
export declare abstract class CommandArgument {
    getReadableType(): string;
    getParameters(server: Server): Set<CommandParameter> | undefined;
}
export declare class CommandArgumentGamemode implements CommandArgument {
    private name;
    private optional;
    private flags;
    private postfix;
    constructor(data?: {
        name?: string;
        optional?: boolean;
        flags?: CommandParameterFlags;
        postfix?: string;
    });
    parse(reader: StringReader, _context: CommandContext<Player>): import('../../../minecraft/src/index.ts').GametypeName;
    listSuggestions(_context: any, _builder: any): Promise<Suggestions>;
    getExamples(): string[];
    getReadableType(): string;
    getParameters(): Set<CommandParameter>;
}
export declare class CommandArgumentMob implements CommandArgument {
    private name;
    private optional;
    private flags;
    private postfix;
    constructor(data?: {
        name?: string;
        optional?: boolean;
        flags?: CommandParameterFlags;
        postfix?: string;
    });
    parse(reader: StringReader, _context: CommandContext<Player>): string;
    listSuggestions(_context: any, _builder: any): Promise<Suggestions>;
    getExamples(): never[];
    getReadableType(): string;
    getParameters(): Set<CommandParameter>;
}
export declare class CommandArgumentEntity implements CommandArgument {
    private name;
    private optional;
    private flags;
    private postfix;
    constructor(data?: {
        name?: string;
        optional?: boolean;
        flags?: CommandParameterFlags;
        postfix?: string;
    });
    parse(reader: StringReader, context: CommandContext<Player>): import('..').Entity[] | (Player | null)[];
    getReadableType(): string;
    getParameters(): Set<CommandParameter>;
}
export declare class CommandArgumentPosition extends Vector3 implements CommandArgument {
    private name;
    private optional;
    private flags;
    private postfix;
    constructor(data?: {
        name?: string;
        optional?: boolean;
        flags?: CommandParameterFlags;
        postfix?: string;
    });
    parse(reader: StringReader, context: CommandContext<Player>): this;
    getReadableType(): string;
    getParameters(): Set<CommandParameter>;
}
export declare class CommandArgumentCommand implements CommandArgument {
    private name;
    private optional;
    private flags;
    private postfix;
    constructor(data?: {
        name?: string;
        optional?: boolean;
        flags?: CommandParameterFlags;
        postfix?: string;
    });
    parse(reader: StringReader, _context: CommandContext<Player>): string;
    getReadableType(): string;
    getParameters(): Set<CommandParameter>;
}
export declare class BooleanArgumentCommand implements CommandArgument {
    private name;
    private optional;
    private flags;
    private postfix;
    constructor(data?: {
        name?: string;
        optional?: boolean;
        flags?: CommandParameterFlags;
        postfix?: string;
    });
    parse(reader: StringReader, _context: CommandContext<Player>): boolean;
    getReadableType(): string;
    getParameters(): Set<CommandParameter>;
}
export declare class PlayerArgumentCommand implements CommandArgument {
    private name;
    private optional;
    private flags;
    private postfix;
    constructor(data?: {
        name?: string;
        optional?: boolean;
        flags?: CommandParameterFlags;
        postfix?: string;
    });
    parse(reader: StringReader, _context: CommandContext<Player>): string;
    getReadableType(): string;
    getParameters(server: Server): Set<CommandParameter>;
}
//# sourceMappingURL=CommandArguments.d.ts.map