import { ReactNode } from 'react';
import { Theme } from '@mui/material/styles';
import { ComponentPalletColor, Sizes } from '@m4l/styles';
import { M4LOverridesStyleRules } from '../../@types/augmentations';
import { APP_BAR_KEY } from './constants';
import { AppBarSlots } from './slots/AppBarEnum';
export type AppBarOrientation = 'vertical' | 'horizontal';
export interface AppBarProps {
    /**
     * Optional color contract kept for compatibility with the shared package API.
     */
    color?: Extract<ComponentPalletColor, 'default'>;
    /**
     * Supported AppBar sizes.
     */
    size?: Extract<Sizes, 'small' | 'medium'>;
    /**
     * AppBar visual variant.
     */
    variant?: 'standard';
    /**
     * AppBar orientation. The new platform contract is vertical-first.
     */
    orientation?: AppBarOrientation;
    /**
     * Whether the host sidebar is currently in its anchored desktop state.
     */
    sidebarAnchored: boolean;
    /**
     * Toggle handler for the temporary mobile sidebar drawer.
     */
    onToggleVisible: (nextVisible?: boolean) => void;
    /**
     * Toggle handler for the anchored desktop sidebar state.
     */
    onToggleAnchored: (nextAnchored?: boolean) => void;
    /**
     * Primary content rendered after the internal toggle control.
     */
    content?: ReactNode;
    /**
     * Secondary content rendered at the bottom of the vertical layout or at the
     * end of the horizontal layout.
     */
    endContent?: ReactNode;
    /**
     * Backwards-compatible content slot. When `content` is provided, it wins.
     */
    children?: ReactNode;
    /**
     * Deprecated company logo prop preserved for compatibility with existing
     * host consumers.
     */
    companyLogo?: string;
    /**
     * Deprecated company name prop preserved for compatibility with existing
     * host consumers.
     */
    companyName?: string;
    /**
     * Whether the embedded Areas surface currently has an expanded module.
     * When true, the root uses the elevated `base` background instead of `default`.
     */
    hasExpandedModule?: boolean;
    /**
     * Optional `data-testid` suffix for the root slot.
     */
    dataTestid?: string;
}
export interface AppBarOwnerState {
    /**
     * Whether the current device is mobile.
     */
    isMobile: boolean;
    /**
     * Effective AppBar size.
     */
    size?: AppBarProps['size'];
    /**
     * Effective AppBar orientation.
     */
    orientation: AppBarOrientation;
    /**
     * Whether the AppBar currently renders end content.
     */
    hasEndContent: boolean;
    /**
     * Whether the embedded Areas surface currently has an expanded module.
     */
    hasExpandedModule: boolean;
    /**
     * Whether the host sidebar is currently expanded (anchored desktop state).
     */
    sidebarAnchored: boolean;
    /**
     * Extra owner-state fields consumed by styled slots.
     */
    [key: string]: unknown;
}
export type AppBarSlotsType = keyof typeof AppBarSlots;
export type AppBarStyles = M4LOverridesStyleRules<AppBarSlotsType, typeof APP_BAR_KEY, Theme>;
//# sourceMappingURL=types.d.ts.map