import type { Snippet } from 'svelte';
import type { NeoButtonGroupContext, NeoButtonGroupProps } from './neo-button-group.model.js';
import type { NeoButtonProps } from './neo-button.model.js';
import type { NeoDividerProps } from '../divider/neo-divider.model.js';
import type { NeoMenuItem } from '../floating/menu/neo-menu-list-item.model.js';
import type { NeoMenuProps } from '../floating/menu/neo-menu.model.js';
import type { NeoIconBouncingDotsProps } from '../icons/neo-icon.model.js';
export interface NeoButtonRowItemButton extends NeoButtonProps {
    menuProps?: Partial<NeoMenuItem>;
    label?: string | undefined;
    icon?: Snippet<[unknown]>;
}
export interface NeoButtonRowItemDivider extends NeoDividerProps {
    divider: true;
}
export type NeoButtonRowItem = NeoButtonRowItemButton | NeoButtonRowItemDivider;
export declare const isButtonRowDivider: (item: NeoButtonRowItem) => item is NeoButtonRowItemDivider;
export interface NeoButtonRowContext {
    items?: NeoMenuItem[];
    threshold?: number;
    menuProps?: Partial<NeoMenuProps>;
    iconProps?: NeoIconBouncingDotsProps;
    collapseProps?: NeoButtonProps;
}
export interface NeoButtonRowProps extends Omit<NeoButtonRowContext, 'items'>, Omit<NeoButtonGroupProps, 'children'> {
    children?: Snippet<[NeoButtonGroupContext, NeoButtonRowContext]>;
    collapsed?: Snippet<[NeoButtonGroupContext, NeoButtonRowContext]>;
    ref?: NeoButtonGroupProps['ref'];
    items: NeoButtonRowItem[];
    hovered?: NeoButtonProps['hovered'];
    focused?: NeoButtonProps['focused'];
    buttonProps?: NeoButtonProps;
}
