/// /** * */ import { Logger } from './util/logger'; import { Record, DescribeLayoutResult, DescribeCompactLayoutsResult, DescribeApprovalLayoutsResult, Optional, DmlOptions, SaveResult, UpsertResult, RetrieveOptions, Schema, SObjectNames, SObjectRecord, SObjectInputRecord, SObjectUpdateRecord, SObjectFieldNames, FieldProjectionConfig, FieldPathSpecifier, FieldPathScopedProjection } from './types'; import Connection from './connection'; import RecordReference from './record-reference'; import Query, { QueryOptions, QueryField, QueryCondition, QueryConfig } from './query'; import QuickAction from './quick-action'; import { CachedFunction } from './cache'; import { Readable } from 'stream'; export type FindOptions> = Partial, 'sort' | 'includes'> & { limit: number; offset: number; }>; /** * A class for organizing all SObject access */ export declare class SObject, FieldNames extends SObjectFieldNames = SObjectFieldNames, RetrieveRecord extends SObjectRecord = SObjectRecord, InputRecord extends SObjectInputRecord = SObjectInputRecord, UpdateRecord extends SObjectUpdateRecord = SObjectUpdateRecord> { static _logger: Logger; type: N; _conn: Connection; _logger: Logger; layouts$: CachedFunction<(ln?: string) => Promise>; layouts$$: CachedFunction<(ln?: string) => DescribeLayoutResult>; compactLayouts$: CachedFunction<() => Promise>; compactLayouts$$: CachedFunction<() => DescribeCompactLayoutsResult>; approvalLayouts$: CachedFunction<() => Promise>; approvalLayouts$$: CachedFunction<() => DescribeApprovalLayoutsResult>; /** * */ constructor(conn: Connection, type: N); /** * Create records */ create(records: InputRecord[], options?: DmlOptions): Promise; create(records: InputRecord, options?: DmlOptions): Promise; create(records: InputRecord | InputRecord[], options?: DmlOptions): Promise; /** * Synonym of SObject#create() */ insert: { (records: InputRecord[], options?: DmlOptions): Promise; (records: InputRecord, options?: DmlOptions): Promise; (records: InputRecord | InputRecord[], options?: DmlOptions): Promise; }; /** * Retrieve specified records */ retrieve(ids: string[], options?: RetrieveOptions): Promise; retrieve(ids: string, options?: RetrieveOptions): Promise; retrieve(ids: string | string[], options?: RetrieveOptions): Promise; /** * Update records */ update(records: UpdateRecord[], options?: DmlOptions): Promise; update(records: UpdateRecord, options?: DmlOptions): Promise; update(records: UpdateRecord | UpdateRecord[], options?: DmlOptions): Promise; /** * Upsert records */ upsert(records: InputRecord[], extIdField: FieldNames, options?: DmlOptions): Promise; upsert(records: InputRecord, extIdField: FieldNames, options?: DmlOptions): Promise; upsert(records: InputRecord | InputRecord[], extIdField: FieldNames, options?: DmlOptions): Promise; /** * Delete records */ destroy(ids: string[], options?: DmlOptions): Promise; destroy(ids: string, options?: DmlOptions): Promise; destroy(ids: string | string[], options?: DmlOptions): Promise; /** * Synonym of SObject#destroy() */ delete: { (ids: string[], options?: DmlOptions): Promise; (ids: string, options?: DmlOptions): Promise; (ids: string | string[], options?: DmlOptions): Promise; }; /** * Synonym of SObject#destroy() */ del: { (ids: string[], options?: DmlOptions): Promise; (ids: string, options?: DmlOptions): Promise; (ids: string | string[], options?: DmlOptions): Promise; }; /** * Call Bulk#load() to execute bulkload, returning batch object */ bulkload(operation: 'insert' | 'update' | 'upsert' | 'delete' | 'hardDelete', optionsOrInput?: Object | Record[] | Readable | string, input?: Record[] | Readable | string): import("./api/bulk").Batch; /** * Bulkly insert input data using bulk API */ createBulk(input?: Record[] | Readable | string): import("./api/bulk").Batch; /** * Synonym of SObject#createBulk() */ insertBulk: (input?: Record[] | Readable | string) => import("./api/bulk").Batch; /** * Bulkly update records by input data using bulk API */ updateBulk(input?: Record[] | Readable | string): import("./api/bulk").Batch; /** * Bulkly upsert records by input data using bulk API */ upsertBulk(input?: Record[] | Readable | string, extIdField?: string): import("./api/bulk").Batch; /** * Bulkly delete records specified by input data using bulk API */ destroyBulk(input?: Record[] | Readable | string): import("./api/bulk").Batch; /** * Synonym of SObject#destroyBulk() */ deleteBulk: (input?: Record[] | Readable | string) => import("./api/bulk").Batch; /** * Bulkly hard delete records specified in input data using bulk API */ destroyHardBulk(input: Record[] | Readable): import("./api/bulk").Batch; /** * Synonym of SObject#destroyHardBulk() */ deleteHardBulk: (input: Record[] | Readable) => import("./api/bulk").Batch; /** * Describe SObject metadata */ describe(): Promise; /** * */ describe$(): Promise; /** * */ describe$$(): import("./types").DescribeSObjectResult; /** * Get record representation instance by given id */ record(id: string): RecordReference; /** * Retrieve recently accessed records */ recent(): Promise; /** * Retrieve the updated records */ updated(start: string | Date, end: string | Date): Promise; /** * Retrieve the deleted records */ deleted(start: string | Date, end: string | Date): Promise; /** * Describe layout information for SObject */ layouts(layoutName?: string): Promise; /** * @typedef {Object} CompactLayoutInfo * @prop {Array.} compactLayouts - Array of compact layouts * @prop {String} defaultCompactLayoutId - ID of default compact layout * @prop {Array.} recordTypeCompactLayoutMappings - Array of record type mappings */ /** * Describe compact layout information defined for SObject * * @param {Callback.} [callback] - Callback function * @returns {Promise.} */ compactLayouts(): Promise; /** * Describe compact layout information defined for SObject * * @param {Callback.} [callback] - Callback function * @returns {Promise.} */ approvalLayouts(): Promise; /** * Find and fetch records which matches given conditions */ find(conditions?: Optional>): Query, 'Records'>; find = FieldPathSpecifier, FPC extends FieldProjectionConfig = FieldPathScopedProjection>(conditions: Optional>, fields?: Optional>, options?: FindOptions): Query, 'Records'>; /** * Fetch one record which matches given conditions */ findOne(conditions?: Optional>): Query, 'SingleRecord'>; findOne = FieldPathSpecifier, FPC extends FieldProjectionConfig = FieldPathScopedProjection>(conditions: Optional>, fields?: Optional>, options?: FindOptions): Query, 'SingleRecord'>; /** * Find and fetch records only by specifying fields to fetch. */ select = FieldPathSpecifier, FPC extends FieldProjectionConfig = FieldPathScopedProjection>(fields: QueryField): Query, 'Records'>; /** * Count num of records which matches given conditions */ count(conditions?: Optional>): Query> | FieldPathScopedProjection]?: "*" | ("*" | Extract>["Fields"], string> | { [K_1 in Extract>["ParentReferences"], string>]?: "*" | ("*" | Extract>["ParentReferences"][K_1], import("./types").SObjectDefinition>["Fields"], string> | { [K_2 in Extract>["ParentReferences"][K_1], import("./types").SObjectDefinition>["ParentReferences"], string>]?: "*" | ("*" | Extract>["ParentReferences"][K_1], import("./types").SObjectDefinition>["ParentReferences"][K_2], import("./types").SObjectDefinition>["Fields"], string>[])[] | undefined; })[] | undefined; })[] | undefined; }>, Record, {}>, "Count">; /** * Returns the list of list views for the SObject * * @param {Callback.} [callback] - Callback function * @returns {Promise.} */ listviews(): import("./types").StreamPromise; /** * Returns the list view info in specifed view id * * @param {String} id - List view ID * @returns {ListView} */ listview(id: string): ListView; /** * Returns all registered quick actions for the SObject * * @param {Callback.>} [callback] - Callback function * @returns {Promise.>} */ quickActions(): import("./types").StreamPromise; /** * Get reference for specified quick aciton in the SObject * * @param {String} actionName - Name of the quick action * @returns {QuickAction} */ quickAction(actionName: string): QuickAction; } /** * A class for organizing list view information * * @protected * @class ListView * @param {Connection} conn - Connection instance * @param {SObject} type - SObject type * @param {String} id - List view ID */ declare class ListView { _conn: Connection; type: string; id: string; /** * */ constructor(conn: Connection, type: string, id: string); /** * Executes query for the list view and returns the resulting data and presentation information. */ results(): import("./types").StreamPromise; /** * Returns detailed information about a list view */ describe(options?: { headers?: { [name: string]: string; }; }): import("./types").StreamPromise; /** * Explain plan for executing list view */ explain(): import("./types").StreamPromise; } export default SObject;