import type { AvatarProps } from '../Avatar';
import type { BrandAppLauncherIcon } from './headerAppLauncherBrandSvgs';
import type { SymbolCodepoints } from '@/core/icons/types';
import type { LogoProps } from '../Logo';
export interface HeaderProfileOption {
    id: number;
    cnpj?: string;
    name?: string;
    corporateName?: string;
    icon?: SymbolCodepoints;
    selected?: boolean;
}
export interface HeaderProfile {
    id: number;
    name: string;
    icon: SymbolCodepoints;
}
export declare const HEADER_FIXED_PROFILES: HeaderProfile[];
export declare const HEADER_DEFAULT_PROFILE_KEYS: readonly ["estudante", "docente", "padrao", "sistema", "administrador", "empresa"];
export type HeaderDefaultProfileKey = (typeof HEADER_DEFAULT_PROFILE_KEYS)[number];
/**
 * Returns `HEADER_FIXED_PROFILES` minus entries whose default keys appear in `keysToExclude`.
 */
export declare function excludeHeaderProfilesByKeys(keysToExclude?: HeaderDefaultProfileKey[]): HeaderProfile[];
export type HeaderDefaultCompanyByCnpj = {
    cnpj: string;
};
export type HeaderDefaultCompanyByCorporateName = {
    corporateName: string;
};
export type HeaderDefaultCompanyByName = {
    name: string;
};
/** Objeto completo (fora da página atual da lista) ou chave para casar com um item de `companies`. */
export type HeaderDefaultCompany = HeaderProfileOption | HeaderDefaultCompanyByCnpj | HeaderDefaultCompanyByCorporateName | HeaderDefaultCompanyByName;
export interface HeaderProfileSelection {
    profile: HeaderProfile;
    company?: HeaderProfileOption;
    /**
     * `true` quando o painel de perfil fechou após escolher um perfil com lista de empresas,
     * sem confirmar empresa. `profile`/`company` refletem o último estado confirmado (antes da tentativa);
     * `attemptedProfile` é o perfil em que o utilizador clicou.
     */
    companySelectionDismissed?: boolean;
    attemptedProfile?: HeaderProfile;
}
export interface HeaderAppLauncherItem {
    label: string;
    icon: SymbolCodepoints | BrandAppLauncherIcon;
    href?: string;
    onClick?: () => void;
}
export declare const DEFAULT_HEADER_APP_LAUNCHER_ITEMS: HeaderAppLauncherItem[];
export type HeaderLanguageCode = 'pt' | 'en' | 'es' | 'de';
export interface HeaderLanguageOption {
    code: HeaderLanguageCode;
    label: string;
    flag: string;
}
export declare const HEADER_FIXED_LANGUAGES: HeaderLanguageOption[];
export interface HeaderProps {
    avatarProps?: Omit<AvatarProps, 'size'>;
    logoProps?: LogoProps;
    removeProfiles?: HeaderDefaultProfileKey[];
    isLogged?: boolean;
    user: {
        name: string;
        email: string;
    };
    actions: {
        actionNotification?: () => void;
        actionWidget?: () => void;
        actionLogout?: () => void;
        actionLogin?: () => void;
        actionSignUp?: () => void;
        actionMyAccount?: () => void;
    };
    notificationValue?: number;
    hasThemeToggle?: boolean;
    companies?: HeaderProfileOption[];
    defaultProfile?: HeaderDefaultProfileKey;
    defaultCompany?: HeaderDefaultCompany;
    onProfileSelectionChange?: (selection: HeaderProfileSelection) => void;
    /** Disparado ao clicar em um perfil no menu (antes da escolha de empresa). Útil para atualizar `companies` conforme o perfil. */
    onProfileMenuItemClick?: (profile: HeaderProfile) => void;
    onProfileCompaniesScrollEnd?: () => void;
    appLauncherItems?: HeaderAppLauncherItem[];
    language?: HeaderLanguageCode;
    onLanguageChange?: (code: HeaderLanguageCode) => void;
}
/** Usado pelo `Header`; não faz parte da API pública do pacote. */
export declare function resolveDefaultProfile(list: HeaderProfile[], defaultProfileKey?: HeaderDefaultProfileKey): HeaderProfile | null;
export declare function resolveHeaderDefaultCompany(companies: HeaderProfileOption[], input?: HeaderDefaultCompany): {
    id: number | null;
    snapshot?: HeaderProfileOption;
};
export declare const HEADER_DEFAULT_USER: {
    name: string;
    email: string;
};
export declare const HEADER_DEFAULT_AVATAR_PROPS: Omit<AvatarProps, 'size'>;
export declare const HEADER_DEFAULT_COMPANIES: HeaderProfileOption[];
