import { Basic } from './common/basic';
import { ResultType } from './common/data-type';
import { StartTransactionType } from './common/interface/transaction';
/**
 * @public
 * @class TransactionController
 * @extends Basic
 */
declare class TransactionController extends Basic {
    private apiClassName;
    private TransactionValidate;
    /**
     * @constructor
     * @param {any} obj
     */
    constructor(obj: any);
    /**
     * @public
     * @async
     * @function SetEnable
     * @param {boolean} bEnableTransaction (default value is false)
     * @returns {Promise<ResultType>}
     */
    SetEnable(bEnableTransaction?: boolean): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Start
     * @param {StartTransactionType} opt
     * @returns {Promise<ResultType>}
     */
    Start(opt: StartTransactionType): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Commit
     * @returns {Promise<ResultType>}
     */
    Commit(): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Rollback
     * @returns {Promise<ResultType>}
     */
    Rollback(): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Undo
     * @returns {Promise<ResultType>}
     */
    Undo(): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Redo
     * @returns {Promise<ResultType>}
     */
    Redo(): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function CanUndo
     * @returns {Promise<ResultType>}
     */
    CanUndo(): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function CanRedo
     * @returns {Promise<ResultType>}
     */
    CanRedo(): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Clear
     * @returns {Promise<ResultType>}
     */
    Clear(): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Get
     * @returns {Promise<ResultType>}
     */
    Get(): Promise<ResultType>;
}
export default TransactionController;
