import { Widget } from './index';
export type Predicate<T> = (obj: T) => boolean;
export type Comparator<T> = (a: T, b: T) => number;
/**
 * Makes some properties in TObject optional.
 */
export type SomePartial<TObject, TKey extends keyof TObject> = Partial<Pick<TObject, TKey>> & Omit<TObject, TKey>;
/**
 * Makes some properties in TObject required.
 */
export type SomeRequired<TObject, TKey extends keyof TObject> = Required<Pick<TObject, TKey>> & TObject;
export type EnumObject<T> = T[keyof T];
export type EmptyObject = Record<string, never>;
export type Primitive = number | string | boolean | symbol | bigint;
export interface Closeable {
    close(): void;
}
export type CloseableWidget = Widget & Closeable;
export interface Copyable {
    copy(): void;
}
export type CopyableWidget = Widget & Copyable;
export interface Abortable {
    abort(): void;
}
export type AbortableWidget = Widget & Abortable;
//# sourceMappingURL=types.d.ts.map