import { GuidAccepted } from "@ef-carbon/primitive"; import { IBaseImmutable as ILinkImmutable, IBaseMutable as ILinkMutable } from "../ILink"; import Omit from "../Omit"; import { GroupImmutable, GroupMutable } from "./Group"; import { GroupsImmutable } from "./Groups"; import { IdsImmutable, IdsMutable } from "./Ids"; import Type from "./Type"; export interface ILinkRandomImmutable extends ILinkImmutable { readonly type: Type.Random; readonly ids: IdsImmutable | GroupImmutable; } export interface ILinkRandomMutable extends Omit, ILinkMutable { ids: IdsMutable | GroupMutable; } export interface ILinkRandomOptions { readonly ids: Iterable | GroupImmutable; readonly groups?: GroupsImmutable; readonly redirect?: GuidAccepted; } export interface ILinkRandomStatic { new (init: ILinkRandomOptions): ILinkRandomMutable; } export { ILinkRandomStatic as IStatic, ILinkRandomOptions as IOptions, ILinkRandomMutable as IMutable, ILinkRandomImmutable as IImmutable, }; export default ILinkRandomMutable;