import type { IOResponse } from '@vtex/api'; import { JanusClient } from '@vtex/api'; export interface DocumentResponse { Id: string; Href: string; DocumentId: string; } export interface PaginationArgs { page: number; pageSize: number; } export declare type QueriableFields = '_all' | K[]; export interface EntityMetadata { followers: string[]; schemas: string[]; createdIn: Date; createdBy: string; createdBy_USER: { Id: string; Login: string; Name: string | undefined | null; }; lastInteractionIn: Date; lastInteractionBy: string; lastInteractionBy_USER: EntityMetadata['createdBy_USER']; tags: string[]; dataInstanceId: string; } export declare type WithMetadata> = TEntity & EntityMetadata; export declare type ScrollInput = { fields: Array | '_all'>; sort?: string; where?: string; size?: number; mdToken?: string; }; export declare abstract class MasterDataEntity> extends JanusClient { abstract schema: string; abstract dataEntity: string; abstract get>(id: string, fields: Array> | ['_all']): Promise, K>>; abstract save(entity: TEntity): Promise; abstract update(id: string, partialEntity: Partial): Promise; abstract saveOrUpdate(entity: TEntity & { id: string | undefined; }): Promise; abstract delete(id: string): Promise>; abstract search>(pagination: PaginationArgs, fields: Array> | ['_all'], sort?: string, where?: string): Promise, K>>>; abstract searchRaw>(pagination: PaginationArgs, fields: Array> | ['_all'], sort?: string, where?: string): Promise<{ data: Array, K>>; pagination: { total: number; page: number; pageSize: number; }; }>; abstract scroll>(input: ScrollInput): Promise<{ data: Array, K>>; mdToken: string; }>; }