import type { PropsTableItem, PropsTranslations, HookApiContent, HooksTranslations } from '@mui-internal/api-docs-builder';
import type { BaseCssTOCParams, PropertyDefinition } from "./types.js";
import type { TableOfContentsParams } from "../types.js";
type GetPropertiesTocParams = BaseCssTOCParams & ({
  properties: Array<Pick<PropertyDefinition, 'propName' | 'hash'>>;
  componentProps?: never;
  componentName?: never;
} | {
  componentProps: Record<string, unknown>;
  componentName: string;
  properties?: never;
});
export declare const getPropertiesToc: ({
  properties,
  componentProps,
  componentName,
  inheritance,
  themeDefaultProps,
  t,
  hash
}: GetPropertiesTocParams) => TableOfContentsParams;
interface GetPropsApiDefinitionsParams {
  componentName: string;
  properties: {
    [name: string]: PropsTableItem & {
      /**
       * Only to be compatible the time of the migration for X
       */
      isProPlan?: boolean;
      /**
       * Only to be compatible the time of the migration for X
       */
      isPremiumPlan?: boolean;
    };
  };
  propertiesDescriptions: PropsTranslations['propDescriptions'];
  /**
   * Add indicators that the properties is optional instead of showing it is required.
   */
  showOptionalAbbr?: boolean;
}
export declare function getPropsApiDefinitions(params: GetPropsApiDefinitionsParams): PropertyDefinition[];
interface HookCommonApiParams {
  hookName: string;
  showOptionalAbbr?: boolean;
}
interface GetHookReturnApiDefinitionsParams extends HookCommonApiParams {
  kind: 'return';
  properties: HookApiContent['returnValue'];
  translations: HooksTranslations['returnValueDescriptions'];
}
interface GetHookParametersApiDefinitions extends HookCommonApiParams {
  kind: 'parameters';
  properties: HookApiContent['parameters'];
  translations: HooksTranslations['parametersDescriptions'];
}
export declare function getHookApiDefinitions(params: GetHookReturnApiDefinitionsParams | GetHookParametersApiDefinitions): PropertyDefinition[];
export {};