import { APIResource } from "../../../core/resource.mjs";
import { APIPromise } from "../../../core/api-promise.mjs";
import { PagePromise, SinglePage } from "../../../core/pagination.mjs";
import { RequestOptions } from "../../../internal/request-options.mjs";
export declare class BaseInterrupts extends APIResource {
    static readonly _key: readonly ['magicTransit', 'connectors', 'interrupts'];
    /**
     * Creates an interrupt for a Magic WAN Connector.
     *
     * @example
     * ```ts
     * const interrupt =
     *   await client.magicTransit.connectors.interrupts.create(
     *     'connector_id',
     *     { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
     *   );
     * ```
     */
    create(connectorID: string, params: InterruptCreateParams, options?: RequestOptions): APIPromise<InterruptCreateResponse>;
    /**
     * Lists interrupts for a Magic WAN Connector.
     *
     * @example
     * ```ts
     * // Automatically fetches more pages as needed.
     * for await (const interruptListResponse of client.magicTransit.connectors.interrupts.list(
     *   'connector_id',
     *   { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
     * )) {
     *   // ...
     * }
     * ```
     */
    list(connectorID: string, params: InterruptListParams, options?: RequestOptions): PagePromise<InterruptListResponsesSinglePage, InterruptListResponse>;
}
export declare class Interrupts extends BaseInterrupts {
}
export type InterruptListResponsesSinglePage = SinglePage<InterruptListResponse>;
/**
 * Interrupt action for a connector.
 */
export interface InterruptCreateResponse {
    submitted_at: string;
    reboot?: InterruptCreateResponse.Reboot;
    restart?: InterruptCreateResponse.Restart;
    shutdown?: InterruptCreateResponse.Shutdown;
    triggered_at?: string;
}
export declare namespace InterruptCreateResponse {
    interface Reboot {
        /**
         * Purge connector state.
         */
        purge?: boolean;
    }
    interface Restart {
        /**
         * Purge connector state.
         */
        purge?: boolean;
    }
    interface Shutdown {
        /**
         * Purge connector state.
         */
        purge?: boolean;
    }
}
/**
 * Interrupt action for a connector.
 */
export interface InterruptListResponse {
    submitted_at: string;
    reboot?: InterruptListResponse.Reboot;
    restart?: InterruptListResponse.Restart;
    shutdown?: InterruptListResponse.Shutdown;
    triggered_at?: string;
}
export declare namespace InterruptListResponse {
    interface Reboot {
        /**
         * Purge connector state.
         */
        purge?: boolean;
    }
    interface Restart {
        /**
         * Purge connector state.
         */
        purge?: boolean;
    }
    interface Shutdown {
        /**
         * Purge connector state.
         */
        purge?: boolean;
    }
}
export interface InterruptCreateParams {
    /**
     * Path param
     */
    account_id: string;
    /**
     * Body param
     */
    reboot?: InterruptCreateParams.Reboot;
    /**
     * Body param
     */
    restart?: InterruptCreateParams.Restart;
    /**
     * Body param
     */
    shutdown?: InterruptCreateParams.Shutdown;
}
export declare namespace InterruptCreateParams {
    interface Reboot {
        /**
         * Purge connector state.
         */
        purge?: boolean;
    }
    interface Restart {
        /**
         * Purge connector state.
         */
        purge?: boolean;
    }
    interface Shutdown {
        /**
         * Purge connector state.
         */
        purge?: boolean;
    }
}
export interface InterruptListParams {
    account_id: string;
}
export declare namespace Interrupts {
    export { type InterruptCreateResponse as InterruptCreateResponse, type InterruptListResponse as InterruptListResponse, type InterruptListResponsesSinglePage as InterruptListResponsesSinglePage, type InterruptCreateParams as InterruptCreateParams, type InterruptListParams as InterruptListParams, };
}
//# sourceMappingURL=interrupts.d.mts.map