/**
 * XPublisher ; X (Twitter) v2 /2/tweets publisher with thread chaining,
 * 280-char validation, jittered inter-tweet sleep, and duplicate-content
 * retry. Promoted from the Forge-local outreach-publish-post skill ;
 * SDK 1.15.0.
 *
 * Behavior preserved from Forge :
 *   - 280-char per-tweet validation (free-tier write).
 *   - 30-90s jittered sleep before each reply (anti-spam guard).
 *   - Retry-once on duplicate-content 403/422 after a longer 120-180s sleep.
 *   - Persistent duplicate rejection ; keep chaining off the previous successful
 *     replyToId, surface 1-based partial_failure_tweets, status stays
 *     "published" (root went out, ops decides whether to escalate).
 *
 * The OAuth 1.0a HMAC-SHA1 signing is implemented inline ; no external
 * dependency (Node 20+ native fetch + crypto).
 *
 * @public
 */
import type { PublisherPort, PublishInput, PublishResult } from "../../ports/publisher.js";
export interface XPublisherConfig {
    readonly bearerToken: string;
    readonly apiKey: string;
    readonly apiKeySecret: string;
    readonly accessToken: string;
    readonly accessTokenSecret: string;
}
export interface XPublisherOptions {
    /** Override for tests ; defaults to native setTimeout. */
    readonly sleep?: (ms: number) => Promise<void>;
    /** Override for tests ; defaults to Math.random. Returns [0, 1). */
    readonly random?: () => number;
}
export declare class XPublisher implements PublisherPort {
    readonly channel: "x";
    private readonly cfg;
    private readonly sleep;
    private readonly random;
    constructor(cfg: XPublisherConfig, opts?: XPublisherOptions);
    isConfigured(): Promise<boolean>;
    publish(input: PublishInput): Promise<PublishResult>;
}
//# sourceMappingURL=x.d.ts.map