import { Service } from "services/domain/serviceEntity";
import { SubscriptionRequest } from "subscriptions/data/dto/subscriptionRequest";
import { ServiceSession } from "subscriptions/domain/sessionEntity";

interface SubscriptionsStore {
  /* ---------------------------------- State --------------------------------- */
  subscriptions: Service["id"][] | undefined;
  subscribing: Service['id'][] | undefined;
  isLoading: boolean;
  isFailed: boolean;
  /* --------------------------------- Actions -------------------------------- */
  get(): Promise<void>;
  subscribe(payload: SubscriptionRequest): Promise<void>;
  forkTo(id: Service['id']): Promise<ServiceSession>;
}

export type { SubscriptionsStore };
