import type { ReturnCache } from '../cache';
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(mode?: 'rest' | 'flow'): Promise<GuildStructure<'cached' | 'api'>>;
    guild(mode: 'cache'): ReturnCache<GuildStructure<'cached'> | undefined>;
    fetch(): Promise<AutoModerationRuleStructure>;
    edit(body: RESTPatchAPIAutoModerationRuleJSONBody, reason?: string): Promise<AutoModerationRuleStructure>;
    delete(reason?: string): Promise<undefined>;
    static methods({ client, guildId }: MethodContext<{
        guildId: string;
    }>): {
        list: () => Promise<AutoModerationRuleStructure[]>;
        create: (body: RESTPostAPIAutoModerationRuleJSONBody) => Promise<AutoModerationRuleStructure>;
        delete: (ruleId: string, reason?: string) => Promise<undefined>;
        fetch: (ruleId: string) => Promise<AutoModerationRuleStructure>;
        edit: (ruleId: string, body: RESTPatchAPIAutoModerationRuleJSONBody, reason?: string) => Promise<AutoModerationRuleStructure>;
    };
}
