import {type TurboModule, TurboModuleRegistry} from "react-native";

export interface Spec extends TurboModule {
  install(): boolean;

  createDefaultNativeISA(): string;

  destroy(isaId: string): void;

  getImageCount(isaId: string): Promise<number>;

  isBufferEmpty(isaId: string): Promise<boolean>;

  clearBuffer(isaId: string): Promise<void>;

  getColourChannelUsageType(isaId: string): Promise<number>;

  setColourChannelUsageType(isaId: string, type: number): Promise<void>;

  getMaximumImageCount(isaId: string): Promise<number>;

  setMaximumImageCount(isaId: string, maxCount: number): Promise<void>;

  startFetching(isaId: string): void;

  stopFetching(isaId: string): void;
}

export default TurboModuleRegistry.get<Spec>("DynamsoftImageSourceAdapterModule") as Spec | null;
