import type { ExtensionPropsBase, ConfigValue } from './base';
import type { Form } from './type-helpers/form';
import type { Locale, FormLocale } from './type-helpers/locale';
import type { Model } from './type-helpers/model';
import type { Stage } from './type-helpers/stage';
import type { User } from './type-helpers/user';
import type { AppInstallation } from './type-helpers/appInstallation';

export interface FormSidebarExtensionProps extends ExtensionPropsBase {
  // TODO:Add support for these
  // isExpanded: boolean;
  // expand: (expand: boolean | ((isExpanded: boolean) => boolean)) => unknown;

  extension: {
    config: ConfigValue;
    sidebarConfig: ConfigValue;
    id: string;
  };

  form: Form;
  model: Model;
  allLocales: Locale[];
  selectedLocales: FormLocale[];
  stages: Stage[];
  entry: {
    id: string | null;
    createdBy?: User;
    updatedBy?: User;
    createdAt: Date | null;
    updatedAt: Date | null;
  } | null;
  installation: AppInstallation;
}
