import { GetAppInfoRequest, GetAppInfoResponse, UpdateAppInfoRequest, UpdateAppInfoResponse } from '../interface/app-info.interface'; import { GetAppPermitsRequest, GetAppPermitsResponse } from '../interface/app-permits.interface'; import { GetAppPermissionsRequest, GetAppPermissionsResponse, RequestAppPermissionRequest, RequestAppPermissionResponse } from '../interface/permission.interface'; import { GetBusinessProfileRequest, GetBusinessProfileResponse, UpdateBusinessProfileRequest, UpdateBusinessProfileResponse } from '../interface/business-profile.interface'; import { GetDocumentRequestRequest, GetDocumentRequestResponse } from '../interface/document.interface'; import { SubmitBusinessDocumentRequest, SubmitBusinessDocumentResponse, UploadDocumentFileRequest, UploadDocumentFileResponse } from '../interface/partner.document.interface'; import { Proxy } from '../interface/proxy.interface'; import { BaseClient } from './base-client.dto'; export declare class PartnerClient extends BaseClient { constructor(partnerApiKey: string, partnerId: string, proxy?: Proxy); /** * Get Business Profile Status * Returns the current verification status of the business profile * @param request - Request containing miniAppId * @returns Business profile status */ getBusinessProfile: (request: GetBusinessProfileRequest) => Promise; /** * Update Business Profile * Updates the business profile information * @param request - Request containing miniAppId and kybData * @returns Update result */ updateBusinessProfile: (request: UpdateBusinessProfileRequest) => Promise; /** * Get Document Request Status * Returns document submission status and review history * Includes owner, business, and additional documents based on business type * @param request - Request containing miniAppId * @returns Document request status and history */ getDocumentRequest: (request: GetDocumentRequestRequest) => Promise; /** * Get App Info * Returns detailed app metadata including business profile and OA info * @param request - Request containing miniAppId * @returns Extended app information */ getAppInfo: (request: GetAppInfoRequest) => Promise; /** * Update App Info * Updates app category and/or sub-category IDs * @param request - Request containing miniAppId, optional category, and subCateIds * @returns Update result */ updateAppInfo: (request: UpdateAppInfoRequest) => Promise; /** * Get App Permissions * Returns all system permissions with the app's current status for each. * @param request - Request containing appId * @returns List of permissions with status (UNREGISTERED | WAITING_APPROVAL | APPROVED) */ getAppPermissions: (request: GetAppPermissionsRequest) => Promise; /** * Request App Permissions * Request one or more permissions for the app. * Only UNREGISTERED permissions need requesting. * Partial success is possible — check successPermissions to see which were accepted. * @param request - Request containing appId, optional note, and permissions list * @returns List of successfully requested permission IDs */ requestAppPermission: (request: RequestAppPermissionRequest) => Promise; getAppPermits: (request: GetAppPermitsRequest) => Promise; /** * Upload Document File * Uploads a document file to CDN before submitting document requests * * @param request - Request containing file data and metadata * @returns Upload result with fileId for use in document submission * * @example * ```typescript * const result = await partnerClient.uploadDocumentFile({ * miniAppId: '123456789', * file: fs.readFileSync('./business-license.pdf'), * fileName: 'business-license.pdf', * documentType: 'BUSINESS_LICENSE', * subCategoryId: 1200 * }); * * if (result.error === 0) { * console.log('File uploaded with ID:', result.fileId); * } * ``` */ uploadDocumentFile: (request: UploadDocumentFileRequest) => Promise; /** * Submit Business Document Request (JSON-based) * Submits business license and additional permit documents * * Prerequisites: * - Owner must be verified first * - Files must be uploaded via uploadDocumentFile first * - Use getPermits to get required document types * * @param request - Request containing business documents with fileIds * @returns Submission result with document request IDs * * @example * ```typescript * // First upload files * const uploadResult = await partnerClient.uploadDocumentFile({ * miniAppId: '123456789', * file: fs.readFileSync('./license.pdf'), * fileName: 'license.pdf' * }); * * // Then submit business documents * const result = await partnerClient.submitBusinessDocumentRequest({ * miniAppId: '123456789', * businessDocuments: [{ * fileId: uploadResult.fileId, * fileName: 'license.pdf', * type: 'BUSINESS_LICENSE', * documentType: 'Giấy phép kinh doanh', * documentTypeId: 1, * subCategoryId: 1200 * }] * }); * ``` */ submitBusinessDocumentRequest: (request: SubmitBusinessDocumentRequest) => Promise; private getContentTypeFromFilename; } declare const _default: { PartnerClient: typeof PartnerClient; }; export default _default;