import { I18nProvider } from "@elgato/utils/i18n";
import type { Logger } from "@elgato/utils/logging";
import type { Language, RegistrationInfo } from "../api/index.js";
import { type ActionService } from "./actions/service.js";
import { type DeviceService } from "./devices/service.js";
import * as profiles from "./profiles.js";
import { settings } from "./settings.js";
import * as system from "./system.js";
import { type UIController } from "./ui.js";
export { BarSubType, DeviceType, Target, type Bar, type Controller, type Coordinates, type DeviceInfo, type FeedbackPayload, type GBar, type Language, type Manifest, type Pixmap, type RegistrationInfo, type Size, type State, type Text, } from "../api/index.js";
export * from "./actions/index.js";
export * from "./devices/index.js";
export type * from "./events/index.js";
export { type UIController };
export declare const streamDeck: {
    /**
     * Namespace for event listeners and functionality relating to Stream Deck actions.
     * @returns Actions namespace.
     */
    readonly actions: ActionService;
    /**
     * Namespace for interacting with Stream Deck devices.
     * @returns Devices namespace.
     */
    readonly devices: DeviceService;
    /**
     * Internalization provider, responsible for managing localizations and translating resources.
     * @returns Internalization provider.
     */
    readonly i18n: I18nProvider<Language>;
    /**
     * Registration and application information provided by Stream Deck during initialization.
     * @returns Registration information.
     */
    readonly info: Omit<RegistrationInfo, "devices">;
    /**
     * Logger responsible for capturing log messages.
     * @returns The logger.
     */
    readonly logger: Logger;
    /**
     * Namespace for Stream Deck profiles.
     * @returns Profiles namespace.
     */
    readonly profiles: typeof profiles;
    /**
     * Namespace for persisting settings within Stream Deck.
     * @returns Settings namespace.
     */
    readonly settings: typeof settings;
    /**
     * Namespace for interacting with, and receiving events from, the system the plugin is running on.
     * @returns System namespace.
     */
    readonly system: typeof system;
    /**
     * Namespace for interacting with UI (property inspector) associated with the plugin.
     * @returns UI namespace.
     */
    readonly ui: UIController;
    /**
     * Connects the plugin to the Stream Deck.
     * @returns A promise resolved when a connection has been established.
     */
    connect(): Promise<void>;
};
export default streamDeck;
