import { startServer, stopServer, isServerRunning, getServerStatus, togglePresence, updatePreferences } from './index.js';
export { config } from './index.js';

/**
 * WebPresence API
 *
 * This file exports the public API for the WebPresence package.
 */

type UserPreferences = {
    prefixText: string;
    disabledSites: string[];
    alwaysEnabledSites: string[];
    continuousTimer: boolean;
};
type ServerConfig = {
    port: number;
    activityTimeout: number;
    inactiveCheckInterval: number;
};
type DiscordConfig = {
    clientId: string;
    reconnectAttempts: number;
    maxReconnectAttempts: number;
};
type PresenceConfig = {
    enabled: boolean;
    defaultPrefix: string;
    creditText: string;
    buttons: Array<{
        label: string;
        url: string;
    }>;
    largeImageKey: string;
    smallImageKey: string;
    smallImageText: string;
};
declare const _default: {
    startServer: typeof startServer;
    stopServer: typeof stopServer;
    isServerRunning: typeof isServerRunning;
    getServerStatus: typeof getServerStatus;
    togglePresence: typeof togglePresence;
    updatePreferences: typeof updatePreferences;
    config: {
        get: () => {
            userPreferences: {
                prefixText: string;
                disabledSites: string[];
                alwaysEnabledSites: string[];
                continuousTimer: boolean;
            };
            discord: {
                clientId: string;
                reconnectAttempts: number;
                maxReconnectAttempts: number;
            };
            server: {
                port: number;
                activityTimeout: number;
                inactiveCheckInterval: number;
            };
            presence: {
                enabled: boolean;
                defaultPrefix: string;
                creditText: string;
                buttons: {
                    label: string;
                    url: string;
                }[];
                largeImageKey: string;
                smallImageKey: string;
                smallImageText: string;
                browserIcons: {
                    chrome: {
                        iconKey: string;
                        text: string;
                    };
                    firefox: {
                        iconKey: string;
                        text: string;
                    };
                    default: {
                        iconKey: string;
                        text: string;
                    };
                };
            };
        };
        getDiscord: () => {
            clientId: string;
            reconnectAttempts: number;
            maxReconnectAttempts: number;
        };
        getServer: () => {
            port: number;
            activityTimeout: number;
            inactiveCheckInterval: number;
        };
        getPresence: () => {
            enabled: boolean;
            defaultPrefix: string;
            creditText: string;
            buttons: {
                label: string;
                url: string;
            }[];
            largeImageKey: string;
            smallImageKey: string;
            smallImageText: string;
            browserIcons: {
                chrome: {
                    iconKey: string;
                    text: string;
                };
                firefox: {
                    iconKey: string;
                    text: string;
                };
                default: {
                    iconKey: string;
                    text: string;
                };
            };
        };
        getUserPreferences: () => {
            prefixText: string;
            disabledSites: string[];
            alwaysEnabledSites: string[];
            continuousTimer: boolean;
        };
        updateUserPreferences: (preferences: Partial<{
            prefixText: string;
            disabledSites: string[];
            alwaysEnabledSites: string[];
            continuousTimer: boolean;
        }>) => {
            prefixText: string;
            disabledSites: string[];
            alwaysEnabledSites: string[];
            continuousTimer: boolean;
        };
        resetUserPreferences: () => {
            prefixText: string;
            disabledSites: string[];
            alwaysEnabledSites: string[];
            continuousTimer: boolean;
        };
    };
};

export { type DiscordConfig, type PresenceConfig, type ServerConfig, type UserPreferences, _default as default, getServerStatus, isServerRunning, startServer, stopServer, togglePresence, updatePreferences };
