/**
 * Copyright IBM Corp. 2016, 2025
 *
 * This source code is licensed under the Apache-2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 */
import { type HTMLAttributes, type ReactNode, type KeyboardEvent, type ChangeEvent, type MouseEvent } from 'react';
import PropTypes from 'prop-types';
type DivAttrs = HTMLAttributes<HTMLDivElement>;
export interface StructuredListWrapperProps extends DivAttrs {
    /**
     * Specify a label to be read by screen readers on the container node
     */
    'aria-label'?: string;
    /**
     * Provide the contents of your StructuredListWrapper
     */
    children?: ReactNode;
    /**
     * Specify an optional className to be applied to the container node
     */
    className?: string;
    /**
     * Specify if structured list is condensed, default is false
     */
    isCondensed?: boolean;
    /**
     * Specify if structured list is flush, default is false
     */
    isFlush?: boolean;
    /**
     * Specify whether your StructuredListWrapper should have selections
     */
    selection?: boolean;
}
export declare function StructuredListWrapper(props: StructuredListWrapperProps): import("react/jsx-runtime").JSX.Element;
export declare namespace StructuredListWrapper {
    var propTypes: {
        /**
         * Specify a label to be read by screen readers on the container node
         */
        "aria-label": PropTypes.Requireable<string>;
        /**
         * Deprecated, please use `aria-label` instead.
         * Specify a label to be read by screen readers on the container note.
         */
        ariaLabel: (props: Record<string, any>, propName: string, componentName: string, ...rest: any[]) => any;
        /**
         * Provide the contents of your StructuredListWrapper
         */
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        /**
         * Specify an optional className to be applied to the container node
         */
        className: PropTypes.Requireable<string>;
        /**
         * Specify if structured list is condensed, default is false
         */
        isCondensed: PropTypes.Requireable<boolean>;
        /**
         * Specify if structured list is flush, not valid for selection variant, default is false
         */
        isFlush: PropTypes.Requireable<boolean>;
        /**
         * Specify whether your StructuredListWrapper should have selections
         */
        selection: PropTypes.Requireable<boolean>;
    };
}
export interface StructuredListHeadProps extends DivAttrs {
    /**
     * Provide the contents of your StructuredListHead
     */
    children?: ReactNode;
    /**
     * Specify an optional className to be applied to the node
     */
    className?: string;
}
export declare function StructuredListHead(props: any): import("react/jsx-runtime").JSX.Element;
export declare namespace StructuredListHead {
    var propTypes: {
        /**
         * Provide the contents of your StructuredListHead
         */
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        /**
         * Specify an optional className to be applied to the node
         */
        className: PropTypes.Requireable<string>;
    };
}
export interface StructuredListBodyProps extends DivAttrs {
    /**
     * Provide the contents of your StructuredListBody
     */
    children?: ReactNode;
    /**
     * Specify an optional className to be applied to the container node
     */
    className?: string;
    head?: boolean;
    /**
     * Provide a handler that is invoked on the key down event for the control
     */
    onKeyDown?(event: KeyboardEvent): void;
}
export declare function StructuredListBody(props: StructuredListBodyProps): import("react/jsx-runtime").JSX.Element;
export declare namespace StructuredListBody {
    var propTypes: {
        /**
         * Provide the contents of your StructuredListBody
         */
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        /**
         * Specify an optional className to be applied to the container node
         */
        className: PropTypes.Requireable<string>;
        head: PropTypes.Requireable<boolean>;
        /**
         * Provide a handler that is invoked on the key down event for the control
         */
        onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
    };
}
export interface StructuredListRowProps extends DivAttrs {
    /**
     * Provide the contents of your StructuredListRow
     */
    children?: ReactNode;
    /**
     * Specify an optional className to be applied to the container node
     */
    className?: string;
    /**
     * Specify whether your StructuredListRow should be used as a header row
     */
    head?: boolean;
    /**
     * Provide a handler that is invoked on the click
     */
    onClick?(event: MouseEvent): void;
    /**
     * Provide a handler that is invoked on the key down event for the control
     */
    onKeyDown?(event: KeyboardEvent): void;
    /**
     * Mark if this row should be selectable
     */
    selection?: boolean;
}
export declare function StructuredListRow(props: StructuredListRowProps): import("react/jsx-runtime").JSX.Element;
export declare namespace StructuredListRow {
    var propTypes: {
        /**
         * Provide the contents of your StructuredListRow
         */
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        /**
         * Specify an optional className to be applied to the container node
         */
        className: PropTypes.Requireable<string>;
        /**
         * Specify whether your StructuredListRow should be used as a header row
         */
        head: PropTypes.Requireable<boolean>;
        /**
         * Specify whether a `<label>` should be used
         */
        label: (props: Record<string, any>, propName: string, componentName: string, ...rest: any[]) => any;
        /**
         * Provide a handler that is invoked on the click
         */
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
        /**
         * Provide a handler that is invoked on the key down event for the control,
         */
        onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
        /**
         * Mark if this row should be selectable
         */
        selection: PropTypes.Requireable<boolean>;
    };
}
export interface StructuredListInputProps extends DivAttrs {
    /**
     * Specify an optional className to be applied to the input
     */
    className?: string;
    /**
     * Specify a custom `id` for the input
     */
    id?: string;
    /**
     * Provide a `name` for the input
     */
    name?: string;
    /**
     * Provide an optional hook that is called each time the input is updated
     */
    onChange?(event: ChangeEvent<HTMLInputElement>): void;
    /**
     * Provide a `title` for the input
     */
    title?: string;
}
export declare function StructuredListInput(props: StructuredListInputProps): import("react/jsx-runtime").JSX.Element;
export declare namespace StructuredListInput {
    var propTypes: {
        /**
         * Specify an optional className to be applied to the input
         */
        className: PropTypes.Requireable<string>;
        /**
         * Specify whether the underlying input should be checked by default
         */
        defaultChecked: (props: Record<string, any>, propName: string, componentName: string, ...rest: any[]) => any;
        /**
         * Specify a custom `id` for the input
         */
        id: PropTypes.Requireable<string>;
        /**
         * Provide a `name` for the input
         */
        name: PropTypes.Requireable<string>;
        /**
         * Provide an optional hook that is called each time the input is updated
         */
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        /**
         * Provide a `title` for the input
         */
        title: PropTypes.Requireable<string>;
        /**
         * Specify the value of the input
         */
        value: (props: Record<string, any>, propName: string, componentName: string, ...rest: any[]) => any;
    };
}
export interface StructuredListCellProps extends DivAttrs {
    /**
     * Provide the contents of your StructuredListCell
     */
    children?: ReactNode;
    /**
     * Specify an optional className to be applied to the container node
     */
    className?: string;
    /**
     * Specify whether your StructuredListCell should be used as a header cell
     */
    head?: boolean;
    /**
     * Specify whether your StructuredListCell should have text wrapping
     */
    noWrap?: boolean;
}
export declare function StructuredListCell(props: StructuredListCellProps): import("react/jsx-runtime").JSX.Element;
export declare namespace StructuredListCell {
    var propTypes: {
        /**
         * Provide the contents of your StructuredListCell
         */
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        /**
         * Specify an optional className to be applied to the container node
         */
        className: PropTypes.Requireable<string>;
        /**
         * Specify whether your StructuredListCell should be used as a header cell
         */
        head: PropTypes.Requireable<boolean>;
        /**
         * Specify whether your StructuredListCell should have text wrapping
         */
        noWrap: PropTypes.Requireable<boolean>;
    };
}
export {};
