import { type PeerRemoteHealth } from "./peer_health.js";
export interface PeerConfigRecord {
    entity_id: string;
    peer_id: string;
    peer_name: string;
    peer_url: string;
    direction: string;
    entity_types: string[];
    sync_scope: string;
    auth_method: string;
    shared_secret?: string;
    peer_public_key_thumbprint?: string;
    /** Receiver user_id on the peer Neotoma instance (outbound sync webhook target_user_id). */
    sync_target_user_id?: string;
    conflict_strategy: string;
    active: boolean;
    last_sync_at?: string;
    consecutive_failures?: number;
}
export declare function listPeersForUser(userId: string): Promise<PeerConfigRecord[]>;
export declare function redactPeerForClient(p: PeerConfigRecord): PeerConfigRecord;
/** Internal: includes shared_secret for webhook verification. */
export declare function listPeersWithSecrets(userId: string): Promise<PeerConfigRecord[]>;
export declare function getPeerSecretForVerification(userId: string, senderPeerId: string): Promise<string | null>;
export declare function getPeerForAAuthVerification(userId: string, senderPeerId: string, thumbprint: string | undefined): Promise<PeerConfigRecord | null>;
export declare function addPeerForUser(params: {
    userId: string;
    peer_id: string;
    peer_name: string;
    peer_url: string;
    direction: "push" | "pull" | "bidirectional";
    entity_types: string[];
    sync_scope: "all" | "tagged";
    auth_method: "aauth" | "shared_secret";
    conflict_strategy: "last_write_wins" | "source_priority" | "manual";
    shared_secret?: string;
    peer_public_key_thumbprint?: string;
    sync_target_user_id?: string;
}): Promise<{
    entity_id: string;
    shared_secret?: string;
}>;
export declare function removePeerForUser(params: {
    userId: string;
    peer_id: string;
}): Promise<void>;
export interface PeerStatusPayload {
    peer: PeerConfigRecord;
    local_api_version: string;
    remote_health: PeerRemoteHealth;
}
export declare function getPeerStatusForUser(params: {
    userId: string;
    peer_id: string;
}): Promise<PeerStatusPayload | null>;
//# sourceMappingURL=peer_ops.d.ts.map