import { loadConfig } from "../config/config.js";
import { loadPersistedFederationToken } from "../federation/access-token.js";
import { publishFederationSettlementEvidence } from "../federation/settlement-evidence.js";
import { readWalletProviderRegistry } from "../wallet/wallet-provider-registry.js";
import { resolveWalletRuntimeConfig } from "../wallet/wallet-runtime-config.js";
import { createOrExecuteWalletSend } from "../wallet/wallet-send-approvals.js";
export type MarketplaceAssetKind = "native" | "spl-token";
export type MarketplaceChain = "solana";
export type FederationPaidContentSummarizeRunRequest = {
    handle: string;
    offerId: string;
    walletId?: string;
    sourceText: string;
    summaryStyle?: "plain" | "bullets";
    maxSentences?: number;
    requestedOutput?: string;
    quote: {
        amountInput: string;
        assetDecimals?: number;
        currency: string;
        chain: MarketplaceChain;
        assetKind: MarketplaceAssetKind;
        assetAddress?: string;
        payeeAddress: string;
        expiresInMinutes?: number;
    };
};
export type FederationPaidContentSummarizeRunResult = {
    status: "accepted" | "rejected";
    reason?: string;
    handle?: string;
    endpoint?: string;
    offerId?: string;
    taskId?: string;
    invoiceId?: string;
    receiptId?: string;
    txRef?: string;
    payerAddress?: string;
    snapshot?: {
        taskId?: string;
        status?: string;
        paymentProof?: {
            status?: string;
            invoiceId?: string;
            receiptId?: string;
            txRef?: string;
            verifiedAt?: string;
            reason?: string;
        };
        output?: {
            schema?: string;
            taskId?: string;
            actor?: string;
            offerId?: string;
            status?: string;
            summary?: string;
            outputText?: string;
            result?: {
                kind?: string;
                summaryText?: string;
                sourceWordCount?: number;
                sentenceCount?: number;
                style?: string;
            };
            payment?: {
                offerId?: string;
                invoiceId?: string;
                receiptId?: string;
                status?: string;
                txRef?: string;
                settledAt?: string;
            };
            completedAt?: string;
        };
    };
};
type RunDeps = {
    fetchImpl?: typeof fetch;
    loadConfig?: typeof loadConfig;
    readWalletProviderRegistry?: typeof readWalletProviderRegistry;
    resolveWalletRuntimeConfig?: typeof resolveWalletRuntimeConfig;
    loadPersistedFederationToken?: typeof loadPersistedFederationToken;
    createOrExecuteWalletSend?: typeof createOrExecuteWalletSend;
    publishFederationSettlementEvidence?: typeof publishFederationSettlementEvidence;
    sleep?: (ms: number) => Promise<void>;
    now?: () => Date;
    createId?: (prefix: string) => string;
};
export declare function runPaidFederatedContentSummarize(request: FederationPaidContentSummarizeRunRequest, deps?: RunDeps): Promise<FederationPaidContentSummarizeRunResult>;
export {};
