import type { RMLTemplateExpressions } from "../types/internal";
/**
 * An Event Adapter Operator emitting any dataset value from the underlying element instead of a regular DOM Event object
 * @category Event Adapter Operators
 * @returns OperatorFunction<Event, string>
 * @example <button data-foo="bar" onclick="${source(dataset('foo'), stream)}"> ... </button>
**/
export declare const dataset: <E extends Event>(key: string) => import("rxjs").OperatorFunction<E, string | undefined>;
/**
 * An Event Source emitting any dataset value from the underlying element instead of a regular DOM Event object
 * @category Event Adapter Functions
 * @param key The key of the dataset item to retrieve
 * @param source A handler function or Observer to feed events into
 * @returns EventSource<string>
 * @example <button data-foo="bar" onclick="${Dataset('foo', stream)}"> ... </button>
 * @example <button data-foo="bar" onclick="${Dataset('foo', handlerFn)}"> ... </button>
**/
export declare const Dataset: <T extends HTMLElement, I extends Event, O extends string | undefined>(key: string, source?: RMLTemplateExpressions.SourceExpression<I | O>) => import("..").Observer<I> | ((target: RMLTemplateExpressions.TargetEventHandler<string | undefined>) => import("..").Observer<I>);
/**
 * An Event Source Operator emitting the full dataset object from the underlying element instead of a regular DOM Event object
 * @returns OperatorFunction<Event, DOMStringMap>
 * @example <button data-foo="bar" data-baz="bat" onclick="${source(datasetObject, stream)}"> ... </button>
**/
export declare const datasetObject: import("rxjs").OperatorFunction<Event, DOMStringMap>;
/**
 * An Event Source emitting the full dataset object from the underlying element instead of a regular DOM Event object
 * @category Event Adapter Functions
 * @param source A handler function or Observer to feed events into
 * @returns EventSource<string>
 * @example <button data-foo="bar" data-baz="bat" onclick="${DatasetObject(stream)}"> ... </button>
 * @example <button data-foo="bar" data-baz="bat" onclick="${DatasetObject(handlerFn)}"> ... </button>
**/
export declare const DatasetObject: <T extends HTMLElement, I extends Event, O extends string | undefined>(source?: RMLTemplateExpressions.SourceExpression<I | O>) => import("..").Observer<I> | ((target: RMLTemplateExpressions.TargetEventHandler<DOMStringMap>) => import("..").Observer<I>);
export declare const asDatasetOf: <E extends Event>(key: string) => import("rxjs").OperatorFunction<E, string | undefined>;
export declare const AsDatasetOf: <T extends HTMLElement, I extends Event, O extends string | undefined>(key: string, source?: RMLTemplateExpressions.SourceExpression<I | O>) => import("..").Observer<I> | ((target: RMLTemplateExpressions.TargetEventHandler<string | undefined>) => import("..").Observer<I>);
export declare const asDatasetObject: <E extends Event>(key: string) => import("rxjs").OperatorFunction<E, string | undefined>;
export declare const AsDatasetObject: <T extends HTMLElement, I extends Event, O extends string | undefined>(key: string, source?: RMLTemplateExpressions.SourceExpression<I | O>) => import("..").Observer<I> | ((target: RMLTemplateExpressions.TargetEventHandler<string | undefined>) => import("..").Observer<I>);
//# sourceMappingURL=dataset-source.d.ts.map