import { SmuleUserData, SmuleUserSongData, PerformanceData, SmuleUserIdData } from './ashi-smule-interfaces';
export declare enum PerformanceType {
    MyJoin = "MYJOIN",
    JoinedMe = "JOINEDME",
    Post = "POST",
    Group = "GROUP",
    Solo = "SOLO",
    Unknown = "UNKNOWN"
}
export declare class AshiSmuleStats {
    private userSongData;
    private myJoins;
    private othersJoinMe;
    constructor(userSongData: SmuleUserSongData);
    private updateJoins;
    private getPerformanceType;
    private getOtherSinger;
    private order;
    private sortJoins;
    readonly user: SmuleUserData;
    readonly chanelSongs: PerformanceData[];
    readonly favSongs: PerformanceData[];
    readonly postings: PerformanceData[];
    readonly postingsByDate: PerformanceData[];
    readonly postingsByTitle: PerformanceData[];
    readonly joins: PerformanceData[];
    private getPerformancesOfEnsambleType;
    private getPerformancesOfType;
    readonly solos: PerformanceData[];
    readonly groupSongs: PerformanceData[];
    readonly myJoinSongs: PerformanceData[];
    readonly joinedMeSongs: PerformanceData[];
    readonly allDuets: PerformanceData[];
    readonly myJoinCount: number;
    readonly othersJoinMeCount: number;
    readonly myPostingsCount: number;
    readonly myTotalPerformances: number;
    private getPerformanceCount;
    private getEnsambleTypeCount;
    readonly mySoloCount: number;
    readonly myGroupSongCount: number;
    readonly biggestJoin: PerformanceData;
    readonly smallestJoin: PerformanceData;
    readonly uniqueSongTitleArray: string[];
    readonly uniqueSingersArray: SmuleUserIdData[];
    private getPerfString;
    getString(): string;
    private getNumber;
}
export declare class AshiCollabData {
    otherUser: SmuleUserIdData;
    performances: PerformanceData[];
}
