import { Callback, Connection } from '../connection'; import { EventEmitter } from 'events'; import { Stream } from 'stream'; interface DeployResult { id: string; checkOnly: boolean; completedDate: string; createdDate: string; details?: object[] | undefined; done: boolean; errorMessage?: string | undefined; errorStatusCode?: string | undefined; ignoreWarnings?: boolean | undefined; lastModifiedDate: string; numberComponentErrors: number; numberComponentsDeployed: number; numberComponentsTotal: number; numberTestErrors: number; numberTestsCompleted: number; numberTestsTotal: number; rollbackOnError?: boolean | undefined; startDate: string; status: string; success: boolean; } interface MetadataObject { childXmlNames?: string[] | undefined; directoryName?: string | undefined; inFolder?: boolean | undefined; metaFile?: boolean | undefined; suffix?: string | undefined; xmlName: string; } interface DescribeMetadataResult { metadataObjects: MetadataObject[]; organizationNamespace: string; partialSaveAllowed: boolean; testRequired: boolean; } interface FileProperties { type: string; createdById: string; createdByName: string; createdDate: string; fileName: string; fullName: string; id: string; lastModifiedById: string; lastModifiedByName: string; lastModifiedDate: string; manageableState?: string | undefined; namespacePrefix?: string | undefined; } interface ListMetadataQuery { type: string; folder?: string | undefined; } interface MetadataInfo { fullName: string; } interface Package { apiAccessLevel?: 'Unrestricted' | 'Restricted' | undefined; description?: string | undefined; fullName?: string | undefined; namespacePrefix?: string | undefined; objectPermissions?: ProfileObjectPermissions[] | undefined; postInstallClass?: string | undefined; setupWeblink?: string | undefined; types: PackageTypeMembers[]; uninstallClass?: string | undefined; version: string; } interface PackageTypeMembers { members: string[]; name: string; } interface ProfileObjectPermissions { allowCreate?: boolean | undefined; allowDelete?: boolean | undefined; allowEdit?: boolean | undefined; allowRead?: boolean | undefined; modifyAllRecords?: boolean | undefined; object: string; viewAllRecords?: boolean | undefined; } interface RetrieveRequest { apiVersion?: string | undefined; packageNames?: string[] | undefined; singlePackage?: boolean | undefined; specificFiles?: string[] | undefined; unpackaged?: Package | undefined; } interface RetrieveMessage { fileName: string; problem: string; } interface RetrieveResult { fileProperties: FileProperties[]; id: string; messages: RetrieveMessage[]; zipFile: string; } interface SaveResult { success: boolean; fullName: string; errors?: SaveError | Array | undefined; } interface SaveError { fields: string | string[]; message: string; statusCode: string; } interface UpdateMetadataInfo { currentName: string; metadata: MetadataInfo; } interface UpsertResult { success: boolean; fullName: string; created: boolean; } interface AsyncResult { done: boolean; id: string; state: string; statusCode?: string | undefined; message?: string | undefined; } interface DeployOptions { allowMissingFiles?: boolean | undefined; autoUpdatePackage?: boolean | undefined; checkOnly?: boolean | undefined; ignoreWarnings?: boolean | undefined; performRetrieve?: boolean | undefined; purgeOnDelete?: boolean | undefined; rollbackOnError?: boolean | undefined; runAllTests?: boolean | undefined; runTests?: string[] | undefined; singlePackage?: boolean | undefined; } export class AsyncResultLocator extends EventEmitter implements PromiseLike { check(callback?: Callback): Promise; complete(callback?: Callback): Promise; poll(interval: number, timeout: number): void; then( onfulfilled?: ((value: T) => PromiseLike | TResult1) | null, onrejected?: ((reason: any) => PromiseLike | TResult2) | null, ): Promise; finally(onfinally?: () => void): Promise; } export class DeployResultLocator extends AsyncResultLocator {} export class RetrieveResultLocator extends AsyncResultLocator {} export class Metadata { pollInterval: number; pollTimeout: number; constructor(conn: Connection); checkDeployStatus(id: string, includeDetails?: boolean, callback?: Callback): Promise; checkRetrieveStatus(id: string, callback?: Callback): Promise; checkStatus( ids: string | string[], callback?: Callback>, ): AsyncResultLocator>; create( type: string, metadata: MetadataInfo | Array, callback?: Callback>, ): Promise>; createAsync( type: string, metadata: MetadataInfo | Array, callback?: Callback>, ): Promise>; createSync( type: string, metadata: MetadataInfo | Array, callback?: Callback>, ): Promise>; delete( type: string, fullNames: string | string[], callback?: Callback>, ): Promise>; deleteAsync( type: string, metadata: string | string[] | MetadataInfo | Array, callback?: Callback>, ): AsyncResultLocator>; deleteSync( type: string, fullNames: string | string[], callback?: Callback>, ): Promise>; deploy( zipInput: Stream | Buffer | string, options: DeployOptions, callback?: Callback, ): DeployResultLocator; describe(version?: string, callback?: Callback): Promise; list( queries: ListMetadataQuery | Array, version?: string, callback?: Callback>, ): Promise>; read( type: string, fullNames: string | string[], callback?: Callback>, ): Promise>; readSync( type: string, fullNames: string | string[], callback?: Callback>, ): Promise>; rename( type: string, oldFullName: string, newFullName: string, callback?: Callback, ): Promise; retrieve(request: RetrieveRequest, callback?: Callback): RetrieveResultLocator; update( type: string, updateMetadata: MetadataInfo | Array, callback?: Callback>, ): Promise>; updateAsync( type: string, updateMetadata: MetadataInfo, callback?: Callback>, ): AsyncResultLocator>; updateSync( type: string, updateMetadata: MetadataInfo | Array, callback?: Callback>, ): Promise>; upsert( type: string, metadata: MetadataInfo | Array, callback?: Callback>, ): Promise>; }