import { Future, IResolvedIdentity, Identity, IdentityQuery, ItemQueryResult } from "../models";
import { Store, StoreAction, MapActionOnDispatching, MapActionOnDispatched, MapActionOnFailure } from "./Store";
type QueryActionDispatcher = (query: IdentityQuery) => Future<ItemQueryResult<IResolvedIdentity>>;
type ResolveIdentitiesActionDispatcher = (identities: Identity[]) => Promise<{
    [uid: string]: IResolvedIdentity;
}>;
export interface IIdentityPickerStore {
    getters: {
        getResolvedIdentity: (identity: Identity) => IResolvedIdentity;
    };
    actions: {
        query: StoreAction<unknown, MapActionOnDispatching<QueryActionDispatcher>, MapActionOnDispatched<QueryActionDispatcher>, MapActionOnFailure<QueryActionDispatcher>, QueryActionDispatcher>;
        resolveIdentities: StoreAction<unknown, MapActionOnDispatching<ResolveIdentitiesActionDispatcher>, MapActionOnDispatched<ResolveIdentitiesActionDispatcher>, MapActionOnFailure<ResolveIdentitiesActionDispatcher>, ResolveIdentitiesActionDispatcher>;
    };
}
export declare class IdentityStore extends Store implements IIdentityPickerStore {
    private identityService;
    private identitiesState;
    getters: {
        getResolvedIdentity: (identity: Identity) => IResolvedIdentity;
        getResolvedIdentities: () => IResolvedIdentity[];
    };
    mutations: {
        addOrUpdateResolvedIdentities: (resolvedIdentities: IResolvedIdentity[]) => void;
    };
    actions: {
        resolveIdentities: StoreAction<unknown, (identities: Identity[]) => void, (result: {
            [uid: string]: IResolvedIdentity;
        }, identities: Identity[]) => void, (failureReason: any, identities: Identity[]) => void, (identities: Identity[]) => Promise<{
            [uid: string]: IResolvedIdentity;
        }>>;
        query: StoreAction<unknown, (query: IdentityQuery) => void, (result: ItemQueryResult<IResolvedIdentity>, query: IdentityQuery) => void, (failureReason: any, query: IdentityQuery) => void, (query: IdentityQuery) => Future<ItemQueryResult<IResolvedIdentity>>>;
    };
    protected onActivated(): void;
}
export {};
