import { AdvancedOptions } from '../../services/EntityManager/types';
import { Configuration, DeveloperAppsApi as GeneratedDeveloperAppsApi, type CreateDeveloperAppRequest, type DeleteDeveloperAppRequest, type UpdateDeveloperAppRequest } from '../generated/default';
import { EntityManagerCreateDeveloperAppRequest, EntityManagerUpdateDeveloperAppRequest, EntityManagerDeleteDeveloperAppRequest, type DeveloperAppsApiServicesConfig } from './types';
/** Extended params to allow bypassing entity manager for bearer token response */
type CreateDeveloperAppParams = CreateDeveloperAppRequest & {
    /** When true, use API POST endpoint to get bearer_token; otherwise use entity manager */
    useApiEndpoint?: boolean;
};
export declare class DeveloperAppsApi extends GeneratedDeveloperAppsApi {
    private readonly entityManager?;
    constructor(config: Configuration, services: DeveloperAppsApiServicesConfig);
    /**
     * Create a developer app via relay (user-signed) + API key registration.
     * 1. User signs CreateDeveloperApp ManageEntity tx → POST /relay
     * 2. After relay succeeds, register api_keys + api_access_keys → POST /developer-apps/{address}/access-keys
     */
    createDeveloperAppWithEntityManager(params: EntityManagerCreateDeveloperAppRequest, advancedOptions?: AdvancedOptions): Promise<{
        apiKey: string;
        apiSecret: string;
        bearer_token: string;
        bearerToken: string;
        blockHash: string;
        blockNumber: number;
        transactionHash: string;
    }>;
    /**
     * Get developer apps with api_access_keys (bearer tokens).
     * Uses include=metrics to fetch bearer tokens from the API.
     */
    getDeveloperAppsWithMetrics(params: {
        id: string;
    }): Promise<{
        data: Array<{
            address: string;
            user_id: string;
            name: string;
            description?: string | null;
            image_url?: string | null;
            api_access_keys?: Array<{
                api_access_key: string;
                is_active: boolean;
            }>;
        }>;
    }>;
    createDeveloperApp(params: CreateDeveloperAppParams, requestInit?: RequestInit): Promise<import("../generated/default").CreateDeveloperAppResponse>;
    /**
     * Update a developer app
     */
    updateDeveloperAppWithEntityManager(params: EntityManagerUpdateDeveloperAppRequest, advancedOptions?: AdvancedOptions): Promise<{
        blockHash: string;
        blockNumber: number;
        transactionHash: string;
    }>;
    updateDeveloperApp(params: UpdateDeveloperAppRequest, requestInit?: RequestInit): Promise<import("../generated/default").WriteResponse>;
    /**
     * Delete a developer app
     */
    deleteDeveloperAppWithEntityManager(params: EntityManagerDeleteDeveloperAppRequest): Promise<import("../../services/EntityManager/types").EntityManagerTransactionReceipt>;
    deleteDeveloperApp(params: DeleteDeveloperAppRequest, requestInit?: RequestInit): Promise<import("../generated/default").WriteResponse>;
}
export {};
