import { User } from "./user.js";
import type { CDNOptions, Client, Guild, GuildMemberFlag } from "lilybird";
export interface GuildMemberWithGuildId extends GuildMember {
    readonly guildId: string;
}
export interface PartialGuildMember extends Omit<GuildMember, "user"> {
    readonly user: undefined;
}
export interface ModifyMemberOptions {
    reason?: string;
    nick?: string;
    roles?: Array<string>;
    mute?: boolean;
    deaf?: boolean;
    channel_id?: string;
    communication_disabled_until?: Date | string;
    flags?: Array<GuildMemberFlag>;
}
export declare class GuildMember {
    readonly user: User;
    readonly nick: string | undefined | null;
    readonly avatar: string | undefined | null;
    readonly roles: Array<string>;
    readonly joinedAt: Date;
    readonly premiumSince: Date | undefined;
    readonly deaf: boolean;
    readonly mute: boolean;
    readonly flags: number;
    readonly pending: boolean;
    readonly permissions: string | undefined;
    readonly communicationDisabledUntil: Date | undefined;
    readonly client: Client;
    constructor(client: Client, member: Guild.MemberStructure);
    modify(options: ModifyMemberOptions): Promise<void>;
    avatarURL(options: CDNOptions): string;
}
//# sourceMappingURL=guild-member.d.ts.map