import { LDClient } from './api';
import { LDMigration } from './api/LDMigration';
import { LDMethodResult, LDMigrationOptions } from './api/options/LDMigrationOptions';
/**
 * Report a successful migration operation from `readNew`, `readOld`, `writeNew` or `writeOld`.
 *
 * ```
 * readNew: async () => {
 *   const myResult = doMyOldRead();
 *   if(myResult.wasGood) {
 *     return LDMigrationSuccess(myResult);
 *   }
 *   return LDMigrationError(myResult.error)
 * }
 * ```
 *
 * @param result The result of the operation.
 * @returns An {@link LDMethodResult}
 */
export declare function LDMigrationSuccess<TResult>(result: TResult): LDMethodResult<TResult>;
/**
 * Report a failed migration operation from `readNew`, `readOld`, `writeNew` or `writeOld`.
 *
 * ```
 * readNew: async () => {
 *   const myResult = doMyOldRead();
 *   if(myResult.wasGood) {
 *     return LDMigrationSuccess(myResult);
 *   }
 *   return LDMigrationError(myResult.error)
 * }
 * ```
 *
 * @param result The result of the operations.
 * @returns An {@link LDMethodResult}
 */
export declare function LDMigrationError(error: Error): {
    success: false;
    error: Error;
};
export declare function createMigration<TMigrationRead, TMigrationWrite, TMigrationReadInput = any, TMigrationWriteInput = any>(client: LDClient, config: LDMigrationOptions<TMigrationRead, TMigrationWrite, TMigrationReadInput, TMigrationWriteInput>): LDMigration<TMigrationRead, TMigrationWrite, TMigrationReadInput, TMigrationWriteInput>;
//# sourceMappingURL=Migration.d.ts.map