import { OnInit, OnDestroy, QueryList, AfterViewInit, Signal } from '@angular/core';
import { UserState } from '@eui/core';
import { EuiDropdownComponent } from '@eui/components/eui-dropdown';
import { BehaviorSubject } from 'rxjs';
import { BaseStatesDirective } from '@eui/components/shared';
import { EuiUserProfileMenuComponent } from './user-profile-menu/user-profile-menu.component';
import * as i0 from "@angular/core";
import * as i1 from "@eui/components/shared";
/**
 * Represents an extended user profile that includes impersonation capabilities
 * and organizational information.
 * @extends {UserState}
 *
 * When using this interface with UserService, specify it as the generic type parameter:
 * Example: private userService: UserService<UserProfile>
 */
export interface UserProfile extends UserState {
    /** The profile of another user being impersonated, if applicable */
    impersonatingUser?: UserProfile;
    /** The user's function or role within the system */
    function?: string;
    /** The organization details associated with the user */
    organisation?: {
        /** The unique code identifying the organization */
        code: string;
    };
}
export declare class EuiUserProfileComponent implements OnInit, OnDestroy, AfterViewInit {
    get cssClasses(): string;
    userState: Signal<UserProfile>;
    avatarInitials: Signal<string>;
    welcomeLabel: string;
    impersonateLabel: string;
    avatarUrl: string;
    subInfos: string;
    statusVariant: string;
    hasMenu: boolean;
    hasWelcomeLabel: boolean;
    isShowAvatarInitials: boolean;
    hasTabNavigation: boolean;
    isReverse: boolean;
    hasToggle: boolean;
    isHeaderUserProfile: boolean;
    isToolbarUserProfile: boolean;
    isShowUserInfos: boolean;
    isMobileOnly: boolean;
    euiStatusSecondary: boolean;
    euiStatusSuccess: boolean;
    euiStatusDanger: boolean;
    /**
     * If true, the name will be displayed in reverse order (first name, first)
     */
    reverseNameOrder: boolean;
    dropdown: EuiDropdownComponent;
    hasMenuContent: QueryList<EuiUserProfileMenuComponent>;
    isDropdownOpen: boolean;
    baseStatesDirective: BaseStatesDirective;
    $isDropdownOpen: BehaviorSubject<boolean>;
    private unsubscribeSubject$;
    private elRef;
    private cd;
    private userService;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    closeDropdown(): void;
    onDropdownExpand(isOpen: boolean): void;
    onOpenChange(open: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiUserProfileComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiUserProfileComponent, "eui-user-profile", never, { "welcomeLabel": { "alias": "welcomeLabel"; "required": false; }; "impersonateLabel": { "alias": "impersonateLabel"; "required": false; }; "avatarUrl": { "alias": "avatarUrl"; "required": false; }; "subInfos": { "alias": "subInfos"; "required": false; }; "statusVariant": { "alias": "statusVariant"; "required": false; }; "hasMenu": { "alias": "hasMenu"; "required": false; }; "hasWelcomeLabel": { "alias": "hasWelcomeLabel"; "required": false; }; "isShowAvatarInitials": { "alias": "isShowAvatarInitials"; "required": false; }; "hasTabNavigation": { "alias": "hasTabNavigation"; "required": false; }; "isReverse": { "alias": "isReverse"; "required": false; }; "hasToggle": { "alias": "hasToggle"; "required": false; }; "isHeaderUserProfile": { "alias": "isHeaderUserProfile"; "required": false; }; "isToolbarUserProfile": { "alias": "isToolbarUserProfile"; "required": false; }; "isShowUserInfos": { "alias": "isShowUserInfos"; "required": false; }; "isMobileOnly": { "alias": "isMobileOnly"; "required": false; }; "euiStatusSecondary": { "alias": "euiStatusSecondary"; "required": false; }; "euiStatusSuccess": { "alias": "euiStatusSuccess"; "required": false; }; "euiStatusDanger": { "alias": "euiStatusDanger"; "required": false; }; "reverseNameOrder": { "alias": "reverseNameOrder"; "required": false; }; }, {}, ["hasMenuContent"], ["*"], true, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiSizeS": "euiSizeS"; "euiSecondary": "euiSecondary"; "euiPrimary": "euiPrimary"; }; outputs: {}; }]>;
    static ngAcceptInputType_hasMenu: unknown;
    static ngAcceptInputType_hasWelcomeLabel: unknown;
    static ngAcceptInputType_isShowAvatarInitials: unknown;
    static ngAcceptInputType_hasTabNavigation: unknown;
    static ngAcceptInputType_isReverse: unknown;
    static ngAcceptInputType_hasToggle: unknown;
    static ngAcceptInputType_isHeaderUserProfile: unknown;
    static ngAcceptInputType_isToolbarUserProfile: unknown;
    static ngAcceptInputType_isShowUserInfos: unknown;
    static ngAcceptInputType_isMobileOnly: unknown;
    static ngAcceptInputType_euiStatusSecondary: unknown;
    static ngAcceptInputType_euiStatusSuccess: unknown;
    static ngAcceptInputType_euiStatusDanger: unknown;
}
//# sourceMappingURL=user-profile.component.d.ts.map