import { type PlaytestProviderMessage } from '@devvit/protos/types/devvit/cli/playtest.js';
export type PlaytestState = 'Closed' | 'Opened' | 'Reloading';
/**
 * Playtest development mode socket state machine. Connects and maintains
 * connection to the Devvit CLI and calls back on significant state changes.
 *
 * ```
 *    ┌──────────────▲────────────────────▲
 *    │              │ close              │ close
 * ┌──▼─┐  open  ┌───┴───┐  onOpen    ┌───┴──┐
 * │Init├────────►Opening├────────────►Opened│
 * └────┘        └──┬─▲──┘  notify    └───┬──┘
 *           onClose│ │onRetry            │
 *               ┌──▼─┴───┐    onClose    │
 *               │Retrying◄───────────────┘
 *               └────────┘    notify
 * ```
 */
export declare class PlaytestClient {
    #private;
    onState: ((state: PlaytestState) => void) | undefined;
    /** The Close PlaytestState transition is not sent from this function. */
    close(): void;
    open(): void;
    /** Attempts to send data. If unopened or failure, data is lost. */
    send(msg: Readonly<PlaytestProviderMessage>): void;
}
//# sourceMappingURL=PlaytestClient.d.ts.map