import type { Config } from '../../config/schema.js';
import type { DmPolicy } from '../channel-domain.js';
import type { PairingCliChannel } from './pairing-channel.js';
export { type PairingPendingView } from './pairing-types.js';
import type { PairingPendingView } from './pairing-types.js';
export type ChannelPairingState = {
    channel: PairingCliChannel;
    accountId: string;
    dmPolicy: DmPolicy;
    pending: PairingPendingView[];
    paired: {
        fromConfig: string[];
        fromCredentials: string[];
    };
};
export type ChannelPairingSummaryEntry = {
    pending: number;
    stale: number;
    atCapacity: boolean;
};
export type ChannelPairingSummary = Record<PairingCliChannel, ChannelPairingSummaryEntry>;
export type PairingPendingIssue = {
    channel: PairingCliChannel;
    accountId: string;
    pending: number;
    stale: number;
    atCapacity: boolean;
};
export declare function listChannelPairingSummary(config?: Config): ChannelPairingSummary;
export declare function collectPairingPendingIssues(config?: Config): PairingPendingIssue[];
export declare function listChannelPairingState(params: {
    channel: PairingCliChannel;
    accountId?: string;
    config?: Config;
}): ChannelPairingState;
export declare function approveChannelPairing(params: {
    channel: PairingCliChannel;
    accountId?: string;
    code: string;
}): {
    ok: true;
    senderId: string;
    alreadyPaired: boolean;
} | {
    ok: false;
    error: string;
};
export declare function approveChannelPairingBySender(params: {
    channel: PairingCliChannel;
    accountId?: string;
    senderId: string;
}): {
    ok: true;
    senderId: string;
    alreadyPaired: boolean;
} | {
    ok: false;
    error: string;
};
export declare function revokeChannelPairingPaired(params: {
    channel: PairingCliChannel;
    accountId?: string;
    senderId: string;
}): {
    ok: true;
    changed: boolean;
} | {
    ok: false;
    error: string;
};
export declare function dismissChannelPairingPending(params: {
    channel: PairingCliChannel;
    accountId?: string;
    senderId: string;
}): {
    ok: true;
    senderId: string;
} | {
    ok: false;
    error: string;
};
