import { Store } from '@datorama/akita';
import * as O from 'fp-ts/Option';
import { DocumentAttachmentPropertiesDto, ImageAttachmentPropertiesDto } from '../../../apis/benefits-api/benefits-api.dto';
export declare const BenefitCategories: string[];
export declare type BenefitId = string;
export declare type AccountBenefitVisibility = {
  order: number;
  isEnabled: boolean;
};
export declare type CustomBenefitsListEntry = {
  id: BenefitId;
  title: string;
  category: string;
  lastModifiedDate: O.Option<string>;
  visibility: AccountBenefitVisibility;
};
export declare type ManagedBenefitsPageState = {
  enabledBenefits: CustomBenefitsListEntry[];
  disabledBenefits: CustomBenefitsListEntry[];
};
export declare type Benefit = {
  id: O.Some<BenefitId>;
  title: O.Some<string>;
  subtitle: O.Some<string>;
  category: O.Some<string>;
  description: O.Option<string>;
  url: O.Option<string>;
  attachment: O.Option<DocumentAttachmentPropertiesDto>;
  icon: O.Option<ImageAttachmentPropertiesDto>;
};
export declare type DraftBenefit = {
  title: O.Option<string>;
  subtitle: O.Option<string>;
  category: O.Option<string>;
  description: O.Option<string>;
  url: O.Option<string>;
  attachment: O.Option<DocumentAttachmentPropertiesDto>;
  icon: O.Option<ImageAttachmentPropertiesDto>;
  isValid: boolean;
  isDirty: boolean;
};
export declare type ManageBenefitsState = {
  manageBenefitsPageState: ManagedBenefitsPageState;
  selectedBenefit: O.Option<Benefit>;
  draftBenefit: O.Option<DraftBenefit>;
};
export declare class ManageBenefitsStore extends Store<ManageBenefitsState> {
  constructor();
}
declare const _default: ManageBenefitsStore;
export default _default;
