import type { RpcInternalCommunityRecordAfterFirstUpdateType, RpcInternalCommunityRecordBeforeFirstUpdateType, RpcLocalCommunityLocalProps, RpcLocalCommunityUpdateResultType, CommunityEditOptions, CommunityExportRecord, CommunityIpfsType, CommunityStartedState, ExportCommunityUserOptions, ExportCommunityModLogsOptions } from "./types.js";
import type { CommentModerationTableRow } from "../publications/comment-moderation/types.js";
import { RpcRemoteCommunity } from "./rpc-remote-community.js";
import { PKC } from "../pkc/pkc.js";
export declare class RpcLocalCommunity extends RpcRemoteCommunity {
    started: boolean;
    startedState: CommunityStartedState;
    signer: RpcLocalCommunityLocalProps["signer"];
    settings: RpcLocalCommunityLocalProps["settings"];
    editable: Pick<RpcLocalCommunity, keyof CommunityEditOptions>;
    challenges: CommunityIpfsType["challenges"];
    encryption: CommunityIpfsType["encryption"];
    createdAt: CommunityIpfsType["createdAt"];
    protocolVersion: CommunityIpfsType["protocolVersion"];
    raw: {
        communityIpfs?: CommunityIpfsType;
        runtimeFieldsFromRpc?: Record<string, any>;
        localCommunity?: RpcLocalCommunityUpdateResultType;
    };
    private _startRpcSubscriptionId?;
    _usingDefaultChallenge: RpcLocalCommunityLocalProps["_usingDefaultChallenge"];
    private _exportsSubscriptionId?;
    private _exportsCache;
    private _exportSignalDetachers;
    constructor(pkc: PKC);
    toJSONInternalRpcAfterFirstUpdate(): RpcInternalCommunityRecordAfterFirstUpdateType;
    toJSONInternalRpcBeforeFirstUpdate(): RpcInternalCommunityRecordBeforeFirstUpdateType;
    initRpcInternalCommunityBeforeFirstUpdateNoMerge(newProps: RpcInternalCommunityRecordBeforeFirstUpdateType): void;
    initRpcInternalCommunityAfterFirstUpdateNoMerge(newProps: RpcInternalCommunityRecordAfterFirstUpdateType): void;
    protected _updateRpcClientStateFromStartedState(startedState: RpcLocalCommunity["startedState"]): void;
    protected _processUpdateEventFromRpcUpdate(args: any): void;
    private _handleRpcUpdateEventFromStart;
    private _handleRpcStartedStateChangeEvent;
    private _handleRpcChallengeRequestEvent;
    private _handleRpcChallengeEvent;
    private _handleRpcChallengeAnswerEvent;
    private _handleRpcChallengeVerificationEvent;
    start(): Promise<void>;
    private _cleanUpRpcConnection;
    stopWithoutRpcCall(): Promise<void>;
    stop(): Promise<void>;
    edit(newCommunityOptions: CommunityEditOptions): Promise<typeof this>;
    update(): Promise<void>;
    get exports(): CommunityExportRecord[];
    export(options?: ExportCommunityUserOptions): Promise<{
        exportId: string;
    }>;
    exportCommunityModLogs(opts?: ExportCommunityModLogsOptions): Promise<{
        moderations: CommentModerationTableRow[];
    }>;
    _attachExportsSubscription(): Promise<void>;
    private _absorbExportRecords;
    delete(): Promise<void>;
}
