import type { Ref, MouseEventHandler, KeyboardEventHandler, ReactNode } from 'react';
import type { ImageProps } from '../Image';
import type { FieldValueListItemProps, FieldValueListProps } from '../FieldValueList';
import type { FormControlProps } from '../FormControl';
import type { Action, WithAttributes, NoChildrenProp, TestIdProp, OmitStrict } from '../../types';
import type { selectionCardElements } from './SelectionCard.test-ids';
export type ImagePlacement = 'block-start' | 'inline-end' | 'inline-start';
export type ImageSize = 'flexible' | 'large' | 'small';
export type FieldValueItemPropsOmitName = OmitStrict<FieldValueListItemProps, 'name'>;
export type SelectionCardProps = WithAttributes<'div', NoChildrenProp & TestIdProp<typeof selectionCardElements> & {
    /** Pass a string or a fragment with a string. */
    label: string;
    /** Content to be rendered as a card heading */
    heading: ReactNode;
    /** The image to render in the card. */
    image?: ImageProps & {
        /**
         * Used to determine image placement
         * @default 'inline-start'
         */
        placement?: ImagePlacement;
        /**
         * Used to determine image size
         * @default 'large'
         */
        size?: ImageSize;
    };
    /** The onClick handler for the item. */
    onClick?: MouseEventHandler;
    /** Called when user presses a key. */
    onKeyDown?: KeyboardEventHandler;
    /** The set of field values to render in the card. */
    fields?: FieldValueListProps['fields'] | FieldValueItemPropsOmitName[];
    /** Pass a heading and content to show additional information on the field. */
    additionalInfo?: FormControlProps['additionalInfo'];
    /** Set the card to disabled state, ie. non-interactive. */
    disabled?: boolean;
    /** Additional actions */
    actions?: Action[];
    /** Reference to the component's input element. */
    ref?: Ref<HTMLDivElement>;
}>;
//# sourceMappingURL=SelectionCard.types.d.ts.map