export interface SubscriptionCapabilities {
    liveQueries: boolean;
    pgSubscriptions: boolean;
    nativeWebSocket: boolean;
}
export interface SubscriptionConfig {
    enableSubscriptions: boolean;
    capabilities: SubscriptionCapabilities;
    walLevel: 'minimal' | 'replica' | 'logical';
    graphqlPort: number;
    websocketPort?: number;
    maxConnections: number;
    heartbeatInterval: number;
    enableNotificationLogging: boolean;
    enablePerformanceMetrics: boolean;
}
export interface SubscriptionConfigInput {
    enableSubscriptions: boolean;
    databaseUrl: string;
    port: string;
    enableLiveQueries?: boolean;
    enablePgSubscriptions?: boolean;
    enableNativeWebSocket?: boolean;
    realtimePort?: string;
    maxConnections?: string;
    heartbeatInterval?: string;
    debugNotifications?: boolean;
    enableMetrics?: boolean;
}
export declare class SubscriptionConfigManager {
    private config;
    constructor(configInput: SubscriptionConfigInput);
    private parseConfigInput;
    private detectWalLevel;
    getConfig(): SubscriptionConfig;
    getRecommendedSubscriptionMethod(): string;
    generateClientConfig(): {
        graphqlEndpoint: string;
        subscriptionEndpoint: string | undefined;
        nativeWebSocketEndpoint: string | undefined;
        capabilities: SubscriptionCapabilities;
        recommendedMethod: string;
    };
    generatePostGraphileConfig(): {
        subscriptions: boolean;
        live: boolean;
        simpleSubscriptions: boolean;
        pgSettings: {
            statement_timeout: string;
            default_transaction_isolation: string;
        };
        allowExplain: boolean;
        disableQueryLog: boolean;
    };
    generateDocumentation(): string;
}
export declare const subscriptionConfig: {
    getConfig(): SubscriptionConfig;
    generateClientConfig(): {
        graphqlEndpoint: string;
        subscriptionEndpoint: string | undefined;
        nativeWebSocketEndpoint: string | undefined;
        capabilities: SubscriptionCapabilities;
        recommendedMethod: string;
    };
    generatePostGraphileConfig(): {
        subscriptions: boolean;
        live: boolean;
        simpleSubscriptions: boolean;
        pgSettings: {
            statement_timeout: string;
            default_transaction_isolation: string;
        };
        allowExplain: boolean;
        disableQueryLog: boolean;
    };
    generateDocumentation(): string;
    refresh(configInput: SubscriptionConfigInput): void;
};
//# sourceMappingURL=subscription-config.d.ts.map