import Client from "../client";
import Service from "../service";
import { CreatePermitRequest } from "../typings/recurring/models";
import { CreatePermitResult } from "../typings/recurring/models";
import { DisablePermitRequest } from "../typings/recurring/models";
import { DisablePermitResult } from "../typings/recurring/models";
import { DisableRequest } from "../typings/recurring/models";
import { DisableResult } from "../typings/recurring/models";
import { NotifyShopperRequest } from "../typings/recurring/models";
import { NotifyShopperResult } from "../typings/recurring/models";
import { RecurringDetailsRequest } from "../typings/recurring/models";
import { RecurringDetailsResult } from "../typings/recurring/models";
import { ScheduleAccountUpdaterRequest } from "../typings/recurring/models";
import { ScheduleAccountUpdaterResult } from "../typings/recurring/models";
import { IRequest } from "../typings/requestOptions";
export declare class RecurringAPI extends Service {
    private readonly API_BASEPATH;
    private baseUrl;
    constructor(client: Client);
    /**
    * @summary Create new permits linked to a recurring contract.
    * @param createPermitRequest {@link CreatePermitRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link CreatePermitResult }
    */
    createPermit(createPermitRequest: CreatePermitRequest, requestOptions?: IRequest.Options): Promise<CreatePermitResult>;
    /**
    * @summary Disable stored payment details
    * @param disableRequest {@link DisableRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link DisableResult }
    */
    disable(disableRequest: DisableRequest, requestOptions?: IRequest.Options): Promise<DisableResult>;
    /**
    * @summary Disable an existing permit.
    * @param disablePermitRequest {@link DisablePermitRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link DisablePermitResult }
    */
    disablePermit(disablePermitRequest: DisablePermitRequest, requestOptions?: IRequest.Options): Promise<DisablePermitResult>;
    /**
    * @summary Get stored payment details
    * @param recurringDetailsRequest {@link RecurringDetailsRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link RecurringDetailsResult }
    */
    listRecurringDetails(recurringDetailsRequest: RecurringDetailsRequest, requestOptions?: IRequest.Options): Promise<RecurringDetailsResult>;
    /**
    * @summary Ask issuer to notify the shopper
    * @param notifyShopperRequest {@link NotifyShopperRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link NotifyShopperResult }
    */
    notifyShopper(notifyShopperRequest: NotifyShopperRequest, requestOptions?: IRequest.Options): Promise<NotifyShopperResult>;
    /**
    * @summary Schedule running the Account Updater
    * @param scheduleAccountUpdaterRequest {@link ScheduleAccountUpdaterRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link ScheduleAccountUpdaterResult }
    */
    scheduleAccountUpdater(scheduleAccountUpdaterRequest: ScheduleAccountUpdaterRequest, requestOptions?: IRequest.Options): Promise<ScheduleAccountUpdaterResult>;
}
export default RecurringAPI;
