import type { Abortable } from '../../../framework-types/abortable/Abortable';
import type { ContextHaving } from '../../../framework-types/execution-context/Types';
import type { Constants } from '../core/Constants';
import type { ArrayAtom } from '../core/state/ArrayStateAtom';
import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../core/Types';
import type { CoreUtils } from '../core/utils/Types';
import type { ContextWithState } from '../Types';
import type { SourceConfig } from './atoms/SourceConfigAtom';
import type { CreateSourceStateAtom, SourceStateAtom } from './atoms/SourceStateAtom';
import type { createSourceReference } from './SourceReference';
export declare enum SourceExportNames {
    CreateSourceStateAtom = "create-source-state-atom",
    CreateSourceReference = "create-source-reference",
    SourceReferences = "source-references",
    SourceState = "source-state-atom"
}
export type SourcePackageDependencies = {
    [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
    [CoreExportNames.CoreEffects]: CoreEffects;
    [CoreExportNames.Constants]: Constants;
    [CoreExportNames.Utils]: CoreUtils;
};
export type SourcePackageExports = {
    [SourceExportNames.CreateSourceStateAtom]: CreateSourceStateAtom;
    [SourceExportNames.CreateSourceReference]: typeof createSourceReference;
    [SourceExportNames.SourceReferences]: SourceReferences;
    [SourceExportNames.SourceState]: SourceStateAtom;
};
export type SourcePackageContext = ContextHaving<SourcePackageDependencies, SourcePackageExports, ContextWithState>;
export type SourceReference = {
    state: SourceStateAtom;
    abortable: Abortable;
    config: SourceConfig;
    id: string;
};
export type SourceReferences = ArrayAtom<SourceReference>;
