/**
 * Copyright IBM Corp. 2015, 2026
 *
 * 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 PropTypes from 'prop-types';
import { type ReactNode } from 'react';
export interface FeatureFlagsProps {
    children?: ReactNode;
    flags?: Record<string, boolean>;
    enableV12TileDefaultIcons?: boolean;
    enableV12TileRadioIcons?: boolean;
    enableV12Overflowmenu?: boolean;
    enableTreeviewControllable?: boolean;
    enableExperimentalFocusWrapWithoutSentinels?: boolean;
    enableFocusWrapWithoutSentinels?: boolean;
    enableDialogElement?: boolean;
    enableV12DynamicFloatingStyles?: boolean;
    enableEnhancedFileUploader?: boolean;
    enablePresence?: boolean;
}
/**
 * Supports an object of feature flag values with the `flags` prop, merging them
 * along with the current `FeatureFlagContext` to provide consumers to check if
 * a feature flag is enabled or disabled in a given React tree
 */
export declare const FeatureFlags: {
    ({ children, flags, enableV12TileDefaultIcons, enableV12TileRadioIcons, enableV12Overflowmenu, enableTreeviewControllable, enableExperimentalFocusWrapWithoutSentinels, enableFocusWrapWithoutSentinels, enableDialogElement, enableV12DynamicFloatingStyles, enableEnhancedFileUploader, enablePresence, }: FeatureFlagsProps): import("react/jsx-runtime").JSX.Element;
    propTypes: {
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        /**
         * Provide the feature flags to enabled or disabled in the current Rea,ct tree
         */
        flags: (props: Record<string, any>, propName: string, componentName: string, ...rest: any[]) => any;
        enableV12TileDefaultIcons: PropTypes.Requireable<boolean>;
        enableV12TileRadioIcons: PropTypes.Requireable<boolean>;
        enableV12Overflowmenu: PropTypes.Requireable<boolean>;
        enableTreeviewControllable: PropTypes.Requireable<boolean>;
        enableExperimentalFocusWrapWithoutSentinels: PropTypes.Requireable<boolean>;
        enableFocusWrapWithoutSentinels: PropTypes.Requireable<boolean>;
        enableDialogElement: PropTypes.Requireable<boolean>;
        enableV12DynamicFloatingStyles: PropTypes.Requireable<boolean>;
        enableEnhancedFileUploader: PropTypes.Requireable<boolean>;
        enablePresence: PropTypes.Requireable<boolean>;
    };
};
/**
 * Access whether a given flag is enabled or disabled in a given
 * FeatureFlagContext
 */
export declare const useFeatureFlag: (flag: string) => any;
/**
 * Access all feature flag information for the given FeatureFlagContext
 */
export declare const useFeatureFlags: () => {
    flags: Map<any, any>;
    checkForFlag(name: any): void;
    add(name: any, enabled: any): void;
    enable(name: any): void;
    disable(name: any): void;
    merge(flags: any): void;
    mergeWithScope(scope: any): void;
    enabled(name: any): any;
};
