type Unsubscriber = () => void;
type Subscribable<T> = {
    (listner: (value: T) => void): Unsubscriber | void;
};
type Subscription<T> = {
    (value: T): void;
};
type Subscriptions<T> = T extends infer K ? Subscription<K> : never;
interface Component {
    unsubscribe(): void;
    fragment: DocumentFragment;
}
type StaticInsertion = string | Component;
type DynamicInsertion = Subscribable<string | Component>;
type ValueInsertion = DynamicInsertion | StaticInsertion;
type Instertion = Subscriptions<GlobalEventHandlersEventMap[keyof GlobalEventHandlersEventMap]> | ValueInsertion;
declare function isStaticInsertion(insertion: Instertion): insertion is StaticInsertion;
declare function isDynamicInsertion(insertion: Instertion): insertion is DynamicInsertion;
declare function ensureValueInsertion(instertion: Instertion): ValueInsertion;
declare function ensureSubscription(instertion: Instertion): Subscription<Event>;
export { Unsubscriber, Subscribable, Subscription, Component, StaticInsertion, DynamicInsertion, ValueInsertion, Instertion, isStaticInsertion, isDynamicInsertion, ensureValueInsertion, ensureSubscription };
