import { TransactionReceipt } from '@hashgraph/sdk';
import { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';
import { HCS2BaseClient } from './base-client';
import { HCS2ClientConfig, HCS2Message, TopicRegistrationResponse, RegistryOperationResponse, TopicRegistry, CreateRegistryOptions, RegisterEntryOptions, UpdateEntryOptions, DeleteEntryOptions, MigrateTopicOptions, QueryRegistryOptions } from './types';
/**
 * Browser client configuration for HCS-2
 */
export interface BrowserHCS2Config extends HCS2ClientConfig {
    hwc: HashinalsWalletConnectSDK;
}
/**
 * Browser client for HCS-2 operations
 */
export declare class BrowserHCS2Client extends HCS2BaseClient {
    private hwc;
    /**
     * Create a new browser HCS-2 client
     * @param config Client configuration
     */
    constructor(config: BrowserHCS2Config);
    /**
     * Get the operator account ID
     * @returns The operator account ID
     */
    private getOperatorId;
    /**
     * Create a new registry topic
     * @param options Registry creation options
     * @returns Promise resolving to the transaction result
     */
    createRegistry(options?: CreateRegistryOptions): Promise<TopicRegistrationResponse>;
    /**
     * Register a new entry in the registry
     * @param registryTopicId The topic ID of the registry
     * @param options Registration options
     * @returns Promise resolving to the operation result
     */
    registerEntry(registryTopicId: string, options: RegisterEntryOptions): Promise<RegistryOperationResponse>;
    /**
     * Update an existing entry in the registry (indexed registries only)
     * @param registryTopicId The topic ID of the registry
     * @param options Update options
     * @returns Promise resolving to the operation result
     */
    updateEntry(registryTopicId: string, options: UpdateEntryOptions): Promise<RegistryOperationResponse>;
    /**
     * Delete an entry from the registry (indexed registries only)
     * @param registryTopicId The topic ID of the registry
     * @param options Delete options
     * @returns Promise resolving to the operation result
     */
    deleteEntry(registryTopicId: string, options: DeleteEntryOptions): Promise<RegistryOperationResponse>;
    /**
     * Migrate a registry to a new topic
     * @param registryTopicId The topic ID of the registry
     * @param options Migration options
     * @returns Promise resolving to the operation result
     */
    migrateRegistry(registryTopicId: string, options: MigrateTopicOptions): Promise<RegistryOperationResponse>;
    /**
     * Get all entries from a registry
     * @param topicId The topic ID of the registry
     * @param options Query options
     * @returns Promise resolving to the registry information
     */
    getRegistry(topicId: string, options?: QueryRegistryOptions): Promise<TopicRegistry>;
    /**
     * Submit a message to a topic
     * @param topicId The topic ID to submit to
     * @param payload The message payload
     * @returns Promise resolving to the transaction receipt
     */
    submitMessage(topicId: string, payload: HCS2Message): Promise<TransactionReceipt>;
}
//# sourceMappingURL=browser.d.ts.map