import { z } from 'zod';
import { type BaseClient } from '../../../../../../core';
import type { paths } from '../../../../../../generated/canton/community/ledger/ledger-json-api/src/test/resources/json-api-docs/openapi';
type GeneratedResponse = paths['/v2/parties/external/generate-topology']['post']['responses']['200']['content']['application/json'];
export declare const GenerateExternalPartyTopologyParamsSchema: z.ZodObject<{
    synchronizer: z.ZodString;
    partyHint: z.ZodString;
    publicKey: z.ZodObject<{
        format: z.ZodString;
        keyData: z.ZodString;
        keySpec: z.ZodString;
    }, z.core.$strip>;
    localParticipantObservationOnly: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    otherConfirmingParticipantUids: z.ZodOptional<z.ZodArray<z.ZodString>>;
    confirmationThreshold: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    observingParticipantUids: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export type GenerateExternalPartyTopologyParams = z.infer<typeof GenerateExternalPartyTopologyParamsSchema>;
export type GenerateExternalPartyTopologyResponse = GeneratedResponse;
/**
 * Generate a topology for an external party
 *
 * This endpoint generates the topology transactions and multi-hash needed to onboard an external party. The multi-hash
 * should be signed using the external party's private key and then submitted to the allocate endpoint along with the
 * generated topology transactions.
 *
 * @example
 *   ```typescript
 *   const result = await client.generateExternalPartyTopology({
 *     synchronizer: 'global-synchronizer',
 *     partyHint: 'alice',
 *     publicKey: {
 *       format: 'CRYPTO_KEY_FORMAT_DER_X509_SUBJECT_PUBLIC_KEY_INFO',
 *       keyData: 'base64-encoded-public-key',
 *       keySpec: 'SIGNING_KEY_SPEC_EC_CURVE25519'
 *     }
 *   });
 *   // result.multiHash - sign this with the external party's private key
 *   // result.topologyTransactions - pass these to allocate endpoint
 *   // result.partyId - the generated party ID
 *   ```;
 */
export declare const GenerateExternalPartyTopology: new (client: BaseClient) => import("../../../../../../core").ApiOperation<{
    synchronizer: string;
    partyHint: string;
    publicKey: {
        format: string;
        keyData: string;
        keySpec: string;
    };
    localParticipantObservationOnly?: boolean | undefined;
    otherConfirmingParticipantUids?: string[] | undefined;
    confirmationThreshold?: number | undefined;
    observingParticipantUids?: string[] | undefined;
}, {
    partyId: string;
    publicKeyFingerprint: string;
    topologyTransactions?: string[];
    multiHash: string;
}>;
export {};
//# sourceMappingURL=generate-topology.d.ts.map