import type { AutoModerationRuleStructure, GuildMemberStructure, GuildStructure } from '../client';
import type { UsingClient } from '../commands';
import type { MethodContext, ObjectToLower } from '../common';
import type { APIAutoModerationRule, RESTPatchAPIAutoModerationRuleJSONBody, RESTPostAPIAutoModerationRuleJSONBody } from '../types';
import { DiscordBase } from './extra/DiscordBase';
export interface AutoModerationRule extends ObjectToLower<APIAutoModerationRule> {
}
export declare class AutoModerationRule extends DiscordBase<APIAutoModerationRule> {
    constructor(client: UsingClient, data: APIAutoModerationRule);
    fetchCreator(force?: boolean): Promise<GuildMemberStructure>;
    guild(force?: boolean): Promise<GuildStructure<'api'>>;
    fetch(): Promise<AutoModerationRuleStructure>;
    edit(body: RESTPatchAPIAutoModerationRuleJSONBody, reason?: string): Promise<AutoModerationRuleStructure>;
    delete(reason?: string): Promise<never>;
    static methods({ client, guildId }: MethodContext<{
        guildId: string;
    }>): {
        list: () => Promise<AutoModerationRuleStructure[]>;
        create: (body: RESTPostAPIAutoModerationRuleJSONBody) => Promise<AutoModerationRuleStructure>;
        delete: (ruleId: string, reason?: string) => Promise<never>;
        fetch: (ruleId: string) => Promise<AutoModerationRuleStructure>;
        edit: (ruleId: string, body: RESTPatchAPIAutoModerationRuleJSONBody, reason?: string) => Promise<AutoModerationRuleStructure>;
    };
}
