import { Icon } from '../interfaces';
import { BaseModel } from './base.model';
import { BrawlClient } from '../brawl.client';
export declare class Club extends BaseModel {
    readonly tag: string;
    readonly name: string;
    readonly description: string;
    readonly trophies: number;
    readonly requiredTrophies: number;
    readonly badgeId: number;
    readonly type: Club.Type;
    readonly members: Club.Member[];
    constructor(client: BrawlClient, raw: Club.Raw);
    getMembers(): Promise<Club.Member[]>;
}
export declare namespace Club {
    interface Raw {
        tag: string;
        name: string;
        description: string;
        trophies: number;
        requiredTrophies: number;
        badgeId: number;
        type: Type;
        members: Member.Raw[];
    }
    function FromRaw(client: BrawlClient, raw: Raw): Club;
    enum Type {
        Open = "open",
        Closed = "closed",
        InviteOnly = "inviteOnly",
        Unknown = "unknown"
    }
    class Member {
        readonly tag: string;
        readonly name: string;
        readonly nameColor: string;
        readonly role: Member.Role;
        readonly trophies: number;
        readonly icon: Icon;
        constructor(raw: Member.Raw);
    }
    namespace Member {
        interface Raw {
            tag: string;
            name: string;
            nameColor: string;
            role: Role;
            trophies: number;
            icon: Icon;
        }
        function FromRaw(raw: Raw): Member;
        enum Role {
            NotMember = "notMember",
            Member = "member",
            President = "president",
            VicePresident = "vicePresident",
            Senior = "senior",
            Unknown = "unknown"
        }
    }
}
