import { Brotherhood, BrotherhoodUser, BrotherhoodUserWeeklyAnalyticLeaderboardEntry, PublicBrotherhoodWithStats } from '../types';
interface GetBrotherhoodProps {
    brotherhoodId: number;
}
interface GetBrotherhoodRes {
    brotherhood: Brotherhood | undefined;
}
export declare const getBrotherhood: ({ brotherhoodId }: GetBrotherhoodProps) => Promise<GetBrotherhoodRes>;
interface GetBrotherhoodUsersRes {
    message: number;
    brotherhoodUsers: BrotherhoodUser[];
    brotherhoodUserWeeklyAnalytics: BrotherhoodUserWeeklyAnalyticLeaderboardEntry[];
}
export declare const getBrotherhoodUsers: (brotherhoodId: number) => Promise<GetBrotherhoodUsersRes>;
export declare const getCurrentUserBrotherhoodUsers: (ethereumAddress: string) => Promise<GetBrotherhoodUsersRes>;
interface EditBrotherhoodProps {
    ethereumAddress: string;
    name: string;
    isPublic: boolean;
    description: string;
    signature?: string;
    proxyAddress?: string;
    profileImage: string | undefined;
    inviteButtonName: string | undefined;
    inviteButtonLink: string | undefined;
}
interface EditBrotherhoodRes {
    message: string;
    brotherhood: Brotherhood;
}
export declare const editBrotherhood: (inputData: EditBrotherhoodProps) => Promise<EditBrotherhoodRes>;
interface CreateBrotherhoodProps {
    ethereumAddress: string;
    profileImage: string | undefined;
    name: string;
    isPublic: boolean;
    description: string;
    signature?: string;
    proxyAddress?: string;
}
interface CreateBrotherhoodRes {
    message: string;
    brotherhood: Brotherhood;
}
export declare const createBrotherhood: (inputData: CreateBrotherhoodProps) => Promise<CreateBrotherhoodRes>;
interface GetCurrentUserBrotherhoodProps {
    ethereumAddress: string;
}
interface GetCurrentUserBrotherhoodRes {
    message: string;
    brotherhood: Brotherhood | undefined;
}
export declare const getCurrentUserBrotherhood: ({ ethereumAddress, }: GetCurrentUserBrotherhoodProps) => Promise<GetCurrentUserBrotherhoodRes>;
interface GetPublicBrotherhoodsRes {
    message: string;
    brotherhoods: PublicBrotherhoodWithStats[];
}
export declare const getPublicBrotherhoods: () => Promise<GetPublicBrotherhoodsRes>;
interface LeaveBrotherhoodProps {
    brotherhoodId: number;
    transferEthereumAddress: string | undefined;
    ethereumAddress: string;
    signature: string;
    proxyAddress: string;
}
interface LeaveBrotherhoodRes {
    message: string;
}
export declare const leaveBrotherhood: ({ brotherhoodId, transferEthereumAddress, ethereumAddress, signature, proxyAddress, }: LeaveBrotherhoodProps) => Promise<LeaveBrotherhoodRes>;
interface JoinBrotherhoodProps {
    ethereumAddress: string;
    brotherhoodId: number;
    signature: string;
    invitationToken?: string;
    proxyAddress: string;
}
interface JoinBrotherhoodRes {
    message: string;
    brotherhood: Brotherhood;
}
export declare const joinBrotherhood: ({ brotherhoodId, ethereumAddress, signature, invitationToken, proxyAddress, }: JoinBrotherhoodProps) => Promise<JoinBrotherhoodRes>;
export {};
