import { PersistedObservable } from '../../observable/persistedObservable';
import type { Store } from '../../store/store';
import type { RiverConnection } from '../river-connection/riverConnection';
import { Member } from './models/member';
import { Myself } from './models/myself';
export type MembersModel = {
    /** The id of the stream. */
    id: string;
    /** The ids of the users in the stream. */
    userIds: string[];
    /** Whether the SyncAgent has loaded this data. */
    initialized: boolean;
};
export declare class Members extends PersistedObservable<MembersModel> {
    private riverConnection;
    private members;
    private _myself?;
    constructor(streamId: string, riverConnection: RiverConnection, store: Store);
    protected onLoaded(): void;
    get myself(): Myself;
    get(userId: string): Member;
    isUsernameAvailable(username: string): boolean;
    private onStreamInitialized;
    private onMemberLeave;
    private onMemberJoin;
    private onMemberInvite;
    private onStreamUsernameUpdated;
    private onStreamDisplayNameUpdated;
    private onStreamNftUpdated;
    private onStreamEnsAddressUpdated;
}
//# sourceMappingURL=members.d.ts.map