import Restful from '../../index.js';
import { CreateSubscriptionRequest, DestinationRequest, NotificationConfig, NotificationParams, UpdateSubscriptionRequest } from '../../../../types/index.js';
/**
 * The eBay  Notification API allows third-party developers and applications to process eBay notifications and verify the integrity of the notification message payload.
 */
export default class Notification extends Restful {
    static id: string;
    get basePath(): string;
    /**
     * This method allows users to retrieve a public key using a specified key ID.
     *
     * @param publicKeyId The unique key ID that is used to retrieve the public key
     */
    getPublicKey(publicKeyId: string): Promise<any>;
    /**
     * This method allows applications to retrieve details for the specified topic.
     *
     * @param topicId The ID of the topic for which to retrieve the details.
     */
    getTopic(topicId: string): Promise<any>;
    /**
     * This method returns a paginated collection of all supported topics, along with the details for the topics.
     *
     * @param limit The maximum number of items to return per page from the result set.
     * @param continuationToken The token used to access the next set of results.
     */
    getTopics({ limit, continuationToken: continuation_token }: NotificationParams): Promise<any>;
    /**
     * This method allows applications to retrieve a list of all subscriptions.
     *
     * @param limit The number of items, from the result set, returned in a single page.
     * @param continuation_token The continuation token for the next set of results.
     */
    getSubscriptions({ limit, continuationToken: continuation_token }: NotificationParams): Promise<any>;
    /**
     * This method allows applications to retrieve a list of all subscriptions.
     *
     * @param body The create subscription request.
     */
    createSubscription(body: CreateSubscriptionRequest): Promise<any>;
    /**
     * This method allows applications to retrieve subscription details for the specified subscription.
     *
     * @param subscriptionId The unique identifier for the subscription.
     */
    getSubscription(subscriptionId: string): Promise<any>;
    /**
     * This method allows applications to retrieve subscription details for the specified subscription.
     *
     * @param subscriptionId The unique identifier for the subscription.
     * @param body The update subscription request.
     */
    updateSubscription(subscriptionId: string, body: UpdateSubscriptionRequest): Promise<any>;
    /**
     * This method allows applications to delete a subscription.
     *
     * @param subscriptionId The unique identifier for the subscription.
     */
    deleteSubscription(subscriptionId: string): Promise<any>;
    /**
     * This method allows applications to enable a disabled subscription.
     *
     * @param subscriptionId The unique identifier for the subscription.
     */
    enableSubscription(subscriptionId: string): Promise<any>;
    /**
     * This method disables a subscription, which prevents the subscription from providing notifications.
     * @param subscriptionId The unique identifier for the subscription.
     */
    disableSubscription(subscriptionId: string): Promise<any>;
    /**
     * This method triggers a mocked test payload that includes a notification ID, publish date, and so on.
     *
     * @param subscriptionId The unique identifier for the subscription.
     */
    test(subscriptionId: string): Promise<any>;
    /**
     * This method allows applications to retrieve a paginated collection of destination resources and related details.
     * @param subscriptionId The unique identifier for the subscription.
     */
    getDestinations({ limit, continuationToken: continuation_token }: NotificationParams): Promise<any>;
    /**
     * This method allows applications to create a destination.
     *
     * @param body The create destination request.
     */
    createDestination(body: DestinationRequest): Promise<any>;
    /**
     * This method allows applications to fetch the details for a destination.
     *
     * @param destinationId The unique identifier for the destination.
     */
    getDestination(destinationId: string): Promise<any>;
    /**
     * This method allows applications to update a destination.
     *
     * @param destinationId The unique identifier for the destination.
     * @param body The create subscription request.
     */
    updateDestination(destinationId: string, body: DestinationRequest): Promise<any>;
    /**
     * his method provides applications a way to delete a destination.
     *
     * @param destinationId The unique identifier for the destination.
     */
    deleteDestination(destinationId: string): Promise<any>;
    /**
     * This method allows applications to retrieve a previously created configuration.
     */
    getConfig(): Promise<any>;
    /**
     * This method allows applications to create a new configuration or update an existing configuration.
     *
     * @param body The configurations for this application.
     */
    updateConfig(body: NotificationConfig): Promise<any>;
}
