import { User, UserGroup } from "@vertesia/common";
/**
 * Fetch the user information given a user reference.
 * The reference has the format: `type:id`. A special reference `system` is used to refer to the system user.
 * @param userRef
 */
export declare function useFetchUserInfo(userId: string): {
    data: User | undefined;
    isLoading: boolean;
    error: any;
    setData: import("react").Dispatch<import("react").SetStateAction<User | undefined>>;
    refetch: () => Promise<void>;
};
/**
 * Fetch the group information given a group ID.
 * @param groupId
 */
export declare function useFetchGroupInfo(groupId: string): {
    data: UserGroup | undefined;
    isLoading: boolean;
    error: any;
    setData: import("react").Dispatch<import("react").SetStateAction<UserGroup | undefined>>;
    refetch: () => Promise<void>;
};
interface InfoProps {
    showTitle?: boolean;
    size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl';
}
interface UserInfoProps extends InfoProps {
    /**
     * The user reference is a string that contains the type and id of the user.
     *
     * The format is: `type:id`, where "type" is the {@link PrincipalType} and the "id" is the
     * object ID in the database.
     *
     * @example user:123
     * @example service_account:123
     * @example apikey:123
     */
    userRef: string | undefined;
}
export declare function UserInfo({ userRef, showTitle, size }: UserInfoProps): import("react/jsx-runtime").JSX.Element;
interface ApiKeyAvatarProps extends InfoProps {
    keyId: string;
}
export declare function ApiKeyAvatar({ keyId, showTitle, size }: ApiKeyAvatarProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=UserInfo.d.ts.map