import { ClientMethods } from "./types/client.js";
import { ContravariantResource } from "@assistant-ui/tap";

//#region src/tapClientList.d.ts
type InferClientState<TMethods> = TMethods extends {
  getState: () => infer S;
} ? S : unknown;
declare const tapClientList: <TData, TMethods extends ClientMethods>(props: tapClientList.Props<TData, TMethods>) => {
  state: InferClientState<TMethods>[];
  get: (lookup: {
    index: number;
  } | {
    key: string;
  }) => TMethods;
  add: (initialData: TData) => void;
};
declare namespace tapClientList {
  type ResourceProps<TData> = {
    key: string;
    getInitialData: () => TData;
    remove: () => void;
  };
  type Props<TData, TMethods extends ClientMethods> = {
    initialValues: TData[];
    getKey: (data: TData) => string;
    resource: ContravariantResource<TMethods, ResourceProps<TData>>;
  };
}
//#endregion
export { tapClientList };
//# sourceMappingURL=tapClientList.d.ts.map