import { StreamDeckPluginHandler } from '../abstracts/stream-deck-plugin-handler';
import { StateType } from '../interfaces/enums';
export declare class StreamDeckActionClass {
    private _handler;
    private _autoSave;
    private _autoDebounce;
    private _settingsTimeoutId;
    private _action;
    private _context;
    private _device;
    private _settings;
    private _column;
    private _row;
    private _isInMultiAction;
    private _state;
    private _userDesiredState;
    constructor(_handler: StreamDeckPluginHandler);
    set settings(value: object | undefined);
    get action(): string;
    set action(value: string);
    get context(): string;
    set context(value: string);
    get device(): string;
    set device(value: string);
    get column(): number;
    set column(value: number);
    get row(): number;
    set row(value: number);
    get isInMultiAction(): boolean;
    set isInMultiAction(value: boolean);
    get state(): StateType;
    set state(value: StateType);
    get userDesiredState(): StateType;
    set userDesiredState(value: StateType);
    disableAutoSave(): void;
    disableAutoDebounce(): void;
    enableAutoSave(): void;
    enableAutoDebounce(): void;
    getSettings<Settings = object>(): Settings | object | undefined;
    getAction(): string;
    getContext(): string;
    getDevice(): string;
    setSettings<Settings = object>(settings: Settings | object, ms?: number): void;
    setSettingsAttributes(attributes: object, ms?: number): void;
    saveSettings(ms: number): void;
    private debounceSettingsCall;
    update(self: StreamDeckActionClass): void;
}
