import type { ApConnectionDef } from './ap.ts';
export * from './ap.ts';
import type { FileConnectionDef } from './file/index.ts';
export * from './file/index.ts';
import type { FacebookConnectionDef } from './facebook.ts';
export * from './facebook.ts';
import type { ReportConnectionDef } from './report.ts';
export * from './report.ts';
import type { ReutersConnectionDef } from './reuters.ts';
export * from './reuters.ts';
import type { TelegramConnectionDef } from './telegram.ts';
export * from './telegram.ts';
import type { JwPlayerConnectionDef } from './jwplayer.ts';
export * from './jwplayer.ts';
import type { EmptyConnectionDef } from './empty.ts';
export * from './empty.ts';
type Union = ApConnectionDef | FileConnectionDef | FacebookConnectionDef | ReportConnectionDef | ReutersConnectionDef | TelegramConnectionDef | JwPlayerConnectionDef | EmptyConnectionDef;
export type ConnectionRecord = Union["connection"];
export type MethodsRecord = Union["methods"];
export type StatsRecord = Union["stats"];
export interface ConnectionDomainRecords {
    [":connection"]: ConnectionRecord;
    [":connection.methods?"]: MethodsRecord;
    [":connection.stats?"]: StatsRecord;
}
export interface ConnectionDef<Type extends string | null> {
    connection: ConnectionBase & {
        type?: Type;
    };
    methods: ConnectionMethodsBase;
    stats: ConnectionStatsBase;
}
export interface ConnectionBase {
    type?: string | null;
    userNotificationsEnabled?: boolean;
}
export interface ConnectionMethodsBase {
    [key: string]: object;
}
export interface ConnectionStatsBase {
    capabilities?: {
        multiHarvest?: boolean;
        multiPublish?: boolean;
    };
    status?: string;
    substatus?: string;
    pages?: Array<{
        id: unknown;
    }>;
}
