import { ReactNode } from 'react';
export interface Identity {
    id: string;
    person?: Person;
    projects: IdentityProject[];
    permissions: {
        canCreateProject: boolean;
    };
    /** @deprecated use person.email */
    email?: string;
    /** @deprecated use person.otpEnabled */
    otpEnabled?: boolean;
    /** @deprecated use person.id */
    personId?: string;
}
export interface Person {
    id: string;
    email: string;
    otpEnabled: boolean;
}
export interface IdentityProject {
    slug: string;
    name: string;
    roles: string[];
}
interface IdentityContext {
    clearIdentity: () => void;
    identity: Identity;
}
export declare const IdentityContext: React.Context<IdentityContext | undefined>;
export declare const IdentityRefreshContext: React.Context<() => void>;
interface IdentityProviderProps {
    children: ReactNode;
    onInvalidIdentity?: () => void;
    allowUnauthenticated?: boolean;
}
export declare const IdentityProvider: React.FC<IdentityProviderProps>;
export {};
//# sourceMappingURL=IdentityProvider.d.ts.map