import { AddressActivityResponse, AddressActivityWebhook, AddressWebhookParams, AddressWebhookUpdate, CustomGraphqlWebhook, CustomGraphqlWebhookConfig, CustomGraphqlWebhookParams, CustomGraphqlWebhookUpdate, DroppedTransactionWebhook, GetAddressesOptions, GetAllWebhooksResponse, MinedTransactionWebhook, NftActivityWebhook, NftFiltersResponse, NftMetadataUpdateWebhook, NftMetadataWebhookUpdate, NftWebhookParams, NftWebhookUpdate, TransactionWebhookParams, Webhook, WebhookType } from '../types/types'; /** * The Notify namespace contains methods used for creating, reading, updating, * and deleting webhooks in the Notify API. * * To use the methods in the API, you must provide your team's auth token in the * {@link AlchemySettings.authToken} field when configuring * {@link AlchemySettings}. The auth token can be found in the Alchemy Dashboard * on the Notify tab. * * Note that not all networks are supported in the Notify API. Please consult * the documentation for which networks are supported. * * Do not call this constructor directly. Instead, instantiate an Alchemy object * with `const alchemy = new Alchemy(config)` and then access the notify * namespace via `alchemy.notify`. */ export declare class NotifyNamespace { private readonly config; /** * Get all webhooks on your team. * * The team is determined by the `authToken` provided into the {@link AlchemySettings} * object when creating a new {@link Alchemy} instance. * * This method returns a response object containing all the webhooks */ getAllWebhooks(): Promise; /** * Get all addresses tracked for the provided {@link AddressActivityWebhook}. * * @param addressWebhook The Address Activity webhook. * @param options Pagination options when fetching addresses. */ getAddresses(addressWebhook: AddressActivityWebhook, options?: GetAddressesOptions): Promise; /** * Get all addresses tracked for the provided {@link AddressActivityWebhook}. * * @param webhookId The id of the address activity webhook. Passing in an id * of a non-address-activity webhook will result in a response object with * no addresses. * @param options Pagination options when fetching addresses. */ getAddresses(webhookId: string, options?: GetAddressesOptions): Promise; /** * Get the graphql query used for the provided {@link CustomGraphqlWebhook}. * * @param customGraphqlWebhook The webhook to get the graphql query for. */ getGraphqlQuery(customGraphqlWebhook: CustomGraphqlWebhook): Promise; /** * Get the graphql query used for the provided {@link CustomGraphqlWebhook}. * * @param webhookId The id of the custom webhook. Passing in an id * of a non-custom webhook will result in a response object with * no graphql query. */ getGraphqlQuery(webhookId: string): Promise; /** * Get all NFTs tracked for the provided {@link NftActivityWebhook}. * * @param nftWebhook The NFT Activity webhook. * @param options Pagination options when fetching NFT filters. */ getNftFilters(nftWebhook: NftActivityWebhook, options?: GetAddressesOptions): Promise; /** * Get all NFT filters tracked for the provided {@link NftActivityWebhook}. * * @param webhookId The id of the NFT activity webhook. Passing in an * incorrect id of a non-NFT webhook will result in a response object with * no filters. * @param options Pagination options when fetching nft filters. */ getNftFilters(webhookId: string, options?: GetAddressesOptions): Promise; /** * Update a {@link NftActivityWebhook}'s active status or NFT filters. * * @param nftWebhook The NFT activity webhook to update. * @param update Object containing the update. */ updateWebhook(nftWebhook: NftActivityWebhook, update: NftWebhookUpdate): Promise; /** * Update a {@link NftActivityWebhook}'s active status or NFT filters. * * @param nftWebhookId The id of the NFT activity webhook. * @param update Object containing the update. */ updateWebhook(nftWebhookId: string, update: NftWebhookUpdate): Promise; /** * Update a {@link NftMetadataUpdateWebhook}'s active status or NFT filters. * * @param nftMetadataWebhookId The id of the NFT activity webhook. * @param update Object containing the update. */ updateWebhook(nftMetadataWebhookId: string, update: NftMetadataWebhookUpdate): Promise; /** * Update a {@link CustomGraphqlWebhook}'s active status. * The graphql query associated with the webhook is immutable. * * @param customGraphqlWebhookId The id of the custom webhook. * @param update Object containing the update. */ updateWebhook(customGraphqlWebhookId: string, update: CustomGraphqlWebhookUpdate): Promise; /** * Update a {@link AddressActivityWebhook}'s active status or addresses. * * @param addressWebhook The address activity webhook to update. * @param update Object containing the update. */ updateWebhook(addressWebhook: AddressActivityWebhook, update: AddressWebhookUpdate): Promise; /** * Update a {@link AddressActivityWebhook}'s active status or addresses. * * @param addressWebhookId The id of the address activity webhook. * @param update Object containing the update. */ updateWebhook(addressWebhookId: string, update: AddressWebhookUpdate): Promise; /** * Create a new {@link MinedTransactionWebhook} to track mined transactions * sent by the app associated with the app id. * * Note that the webhook will be created in the app network of the provided app id. * * @param url The URL that the webhook should send events to. * @param type The type of webhook to create. * @param params Parameters object containing the app id. */ createWebhook(url: string, type: WebhookType.MINED_TRANSACTION, params: TransactionWebhookParams): Promise; /** * Create a new {@link DroppedTransactionWebhook} to track dropped transactions * sent by the app associated with the app id. * * Note that the webhook will be created in the app network of the provided app id. * * @param url The URL that the webhook should send events to. * @param type The type of webhook to create. * @param params Parameters object containing the app id. */ createWebhook(url: string, type: WebhookType.DROPPED_TRANSACTION, params: TransactionWebhookParams): Promise; /** * Create a new {@link NftActivityWebhook} to track NFT transfers. * * @param url The URL that the webhook should send events to. * @param type The type of webhook to create. * @param params Parameters object containing the NFTs to track and the * network the webhook should be created on. */ createWebhook(url: string, type: WebhookType.NFT_ACTIVITY, params: NftWebhookParams): Promise; createWebhook(url: string, type: WebhookType.NFT_METADATA_UPDATE, params: NftWebhookParams): Promise; /** * Create a new {@link CustomGraphqlWebhook} to track any event on every block. * * @param url The URL that the webhook should send events to. * @param type The type of webhook to create. * @param params Parameters object containing the graphql query to be executed * on every block */ createWebhook(url: string, type: WebhookType.GRAPHQL, params: CustomGraphqlWebhookParams): Promise; /** * Create a new {@link AddressActivityWebhook} to track address activity. * * @param url The URL that the webhook should send events to. * @param type The type of webhook to create. * @param params Parameters object containing the addresses to track and the * network the webhook should be created on. */ createWebhook(url: string, type: WebhookType.ADDRESS_ACTIVITY, params: AddressWebhookParams): Promise; /** * Delete the provided webhook. * * @param webhook The webhook to delete. */ deleteWebhook(webhook: Webhook): Promise; /** * Delete the provided webhook. * * @param webhookId The id of the webhook to delete. */ deleteWebhook(webhookId: string): Promise; private verifyConfig; private sendWebhookRequest; }