import { BilliaSDKServiceBase } from '../lib/billia-sdk-service-base';
import { ICatalogProduct } from '../types';
import { IRestPaginatedResource, IRestPaginationQuery } from '../types/common';
import { IProductMigrationConfirmedResponse, IProductMigrationCreatedResponse, IProductMigrationCustomerProductDetails } from './billia-sdk-migration.types';
export declare class BilliaSDKMigration extends BilliaSDKServiceBase {
    /**
     * Lists all product migrations for the current user with pagination.
     *
     * @param session - user session
     * @param query - query options
     */
    getProductMigrations(session: any, query?: IRestPaginationQuery): Promise<IRestPaginatedResource<{
        migrate_id: number;
        receiver: {
            receiver_id: number;
        } & import("./billia-sdk-migration.types").IProductMigrationUserDetails & {
            gravatar: string;
        };
        owner: {
            owner_id: number;
        } & import("./billia-sdk-migration.types").IProductMigrationUserDetails & {
            gravatar: string;
        };
        customer_product: ({
            customer_product_id: number;
        } & IProductMigrationCustomerProductDetails) | ({
            customer_product_id: number;
        } & []);
        purchase_id: string;
        status: import("./billia-sdk-migration.types").IMigrationStatus;
        customer_product_id: number;
        owner_approved: boolean;
        receiver_approved: boolean;
        catalog_product: ICatalogProduct | undefined;
    }>>;
    /**
     * Request a customer product migration.
     *
     * @param session - user session
     * @param migration - the customer product ID and the user ID of the receiver
     */
    requestMigration(session: any, migration: {
        customerProductId: number;
        receiverId: number;
    }): Promise<IProductMigrationCreatedResponse>;
    /**
     * Confirm a customer product migration request.
     *
     * @param session - user session
     * @param token - the confirmation code which was sent to the user
     */
    confirmMigration(session: any, confirmationToken: string): Promise<IProductMigrationConfirmedResponse>;
    /**
     * Cancel a product migration request.
     *
     * @param session - user session
     * @param migrationId - the ID of the migration request
     */
    cancelMigration(session: any, migrationId: number): Promise<null>;
    private getCatalogProducts;
}
//# sourceMappingURL=billia-sdk-migration.d.ts.map