import { ContextValue, SlotProps } from 'react-aria-components/slots';
import { ReactElement, ReactNode, RefObject } from 'react';
import { DOMProps, DOMRefValue, Key } from '@react-types/shared';
import { StyleProps } from './style-utils';
export interface ActionBarProps extends SlotProps, StyleProps, DOMProps {
    /** A list of ActionButtons to display. */
    children: ReactNode;
    /** Whether the ActionBar should be displayed with a emphasized style. */
    isEmphasized?: boolean;
    /** The number of selected items that the ActionBar is currently linked to. If 0, the ActionBar is hidden. */
    selectedItemCount?: number | 'all';
    /** Handler that is called when the ActionBar clear button is pressed. */
    onClearSelection?: () => void;
    /** A ref to the scrollable element the ActionBar appears above. */
    scrollRef?: RefObject<HTMLElement | null>;
}
export declare const ActionBarContext: import("react").Context<ContextValue<Partial<ActionBarProps>, DOMRefValue<HTMLDivElement>>>;
/**
 * Action bars are used for single and bulk selection patterns when a user needs to perform actions on one or more items at the same time.
 */
export declare const ActionBar: import("react").ForwardRefExoticComponent<ActionBarProps & import("react").RefAttributes<DOMRefValue<HTMLDivElement>>>;
interface ActionBarContainerHookProps {
    selectedKeys?: 'all' | Iterable<Key>;
    defaultSelectedKeys?: 'all' | Iterable<Key>;
    onSelectionChange?: (keys: Set<Key>) => void;
    renderActionBar?: (selectedKeys: 'all' | Set<Key>) => ReactElement;
    scrollRef?: RefObject<HTMLElement | null>;
}
interface ActionBarContainerHookResult {
    selectedKeys: 'all' | Iterable<Key>;
    onSelectionChange: (keys: 'all' | Iterable<Key>) => void;
    actionBar: ReactElement;
    actionBarHeight: number;
}
export declare function useActionBarContainer(props: ActionBarContainerHookProps): ActionBarContainerHookResult;
export {};
