import type { Collections, CollectionName, IdFields, Input, Resource, SavedInput } from "../collections"; type IdField> = IdFields[number]; export type StrictIdInput> = IdField extends keyof Input ? Pick, IdField> : Input; export type GenerateId = >(collectionName: N, input: Input | StrictIdInput | undefined) => string | undefined; export type SpecificGenerateId> = (input: Input | StrictIdInput | undefined) => string | undefined; export type IdObject = CollectionName, R extends Resource | SavedInput = Resource | SavedInput> = { [P in keyof R]: P extends "id" ? string : never; }; export {};