import { APIResource } from "../../resource.js";
import * as Core from "../../core.js";
import { Page, type PageParams } from "../../pagination.js";
/**
 * The [Plan](/core-concepts#plan-and-price) resource represents a plan that can be subscribed to by a
 * customer. Plans define the billing behavior of the subscription. You can see more about how to configure prices
 * in the [Price resource](/reference/price).
 */
export declare class Migrations extends APIResource {
    /**
     * Fetch migration
     */
    retrieve(planId: string, migrationId: string, options?: Core.RequestOptions): Core.APIPromise<MigrationRetrieveResponse>;
    /**
     * This endpoint returns a list of all migrations for a plan. The list of
     * migrations is ordered starting from the most recently created migration. The
     * response also includes pagination_metadata, which lets the caller retrieve the
     * next page of results if they exist.
     */
    list(planId: string, query?: MigrationListParams, options?: Core.RequestOptions): Core.PagePromise<MigrationListResponsesPage, MigrationListResponse>;
    list(planId: string, options?: Core.RequestOptions): Core.PagePromise<MigrationListResponsesPage, MigrationListResponse>;
    /**
     * This endpoint cancels a migration.
     */
    cancel(planId: string, migrationId: string, options?: Core.RequestOptions): Core.APIPromise<MigrationCancelResponse>;
}
export declare class MigrationListResponsesPage extends Page<MigrationListResponse> {
}
export interface MigrationRetrieveResponse {
    id: string;
    effective_time: (string & {}) | (string & {}) | 'end_of_term' | null;
    plan_id: string;
    status: 'not_started' | 'in_progress' | 'completed' | 'action_needed' | 'canceled';
}
export interface MigrationListResponse {
    id: string;
    effective_time: (string & {}) | (string & {}) | 'end_of_term' | null;
    plan_id: string;
    status: 'not_started' | 'in_progress' | 'completed' | 'action_needed' | 'canceled';
}
export interface MigrationCancelResponse {
    id: string;
    effective_time: (string & {}) | (string & {}) | 'end_of_term' | null;
    plan_id: string;
    status: 'not_started' | 'in_progress' | 'completed' | 'action_needed' | 'canceled';
}
export interface MigrationListParams extends PageParams {
}
export declare namespace Migrations {
    export { type MigrationRetrieveResponse as MigrationRetrieveResponse, type MigrationListResponse as MigrationListResponse, type MigrationCancelResponse as MigrationCancelResponse, MigrationListResponsesPage as MigrationListResponsesPage, type MigrationListParams as MigrationListParams, };
}
//# sourceMappingURL=migrations.d.ts.map