import { Ability } from '@casl/ability';
import { type Account, type AccountWithoutHelpers } from '../types/auth';
import { type PossibleAbilities } from './types';
/**
 * Reconstruct the full account with abilities and helper methods
 */
export declare const parseAccount: (deserializedAccount: AccountWithoutHelpers<Account>) => {
    isAuthenticated: () => boolean;
    isRegisteredUser: () => boolean;
    isAnonymousUser: () => boolean;
    isSessionUser: () => boolean;
    isJwtUser: () => boolean;
    isServiceAccount: () => boolean;
    isPatUser: () => boolean;
    isOauthUser: () => boolean;
    user: {
        ability: Ability<PossibleAbilities, import("@casl/ability").MongoQuery>;
        id: string;
        email: string | undefined;
        isActive: boolean;
        abilityRules: import("@casl/ability").AbilityBuilder<import("./types").MemberAbility>["rules"];
        type: "registered";
        userUuid: string;
        userId: number;
        firstName: string;
        lastName: string;
        role?: import("..").OrganizationMemberRole;
        isTrackingAnonymized: boolean;
        isMarketingOptedIn: boolean;
        isSetupComplete: boolean;
        createdAt: Date;
        updatedAt: Date;
        timezone: string | null;
        avatarUrl: string | null;
        avatarGradient: import("..").UserAvatarColorValue | null;
        isPending?: boolean;
        impersonation?: import("..").ImpersonationContext;
    } | {
        ability: Ability<PossibleAbilities, import("@casl/ability").MongoQuery>;
        id: string;
        email: string | undefined;
        isActive: boolean;
        abilityRules: import("@casl/ability").AbilityBuilder<import("./types").MemberAbility>["rules"];
        type: "anonymous";
    };
    organization: import("../types/auth").AccountOrganization;
    authentication: import("../types/auth").PersonalAccessTokenAuth | import("../types/auth").SessionAuth | import("../types/auth").JwtAuth | import("../types/auth").ServiceAccountAuth | import("../types/auth").OauthAuth;
    requestContext?: import("../types/auth").AccountRequestContext | undefined;
};
//# sourceMappingURL=parseAccount.d.ts.map