@equinor/esv-intersection
Version:
Intersection component package with testing and automatic documentation.
210 lines • 6.45 kB
TypeScript
export declare function assertNever(x: never): never;
/**
* The closure type of the outline
*/
export type OutlineClosure = 'None' | 'TopAndBottom' | 'Top' | 'Bottom';
export interface HoleSize {
kind: 'hole';
id: string;
diameter: number;
start: number;
end: number;
}
export interface CasingWindow {
id: string;
start: number;
end: number;
}
export interface Casing {
kind: 'casing';
id: string;
diameter: number;
start: number;
end: number;
hasShoe: boolean;
innerDiameter: number;
windows?: CasingWindow[];
}
interface SymbolComponent {
id: string;
diameter: number;
start: number;
end: number;
symbolKey: string;
}
export interface PAndASymbol extends SymbolComponent {
kind: 'pAndASymbol';
}
export declare const isPAndASymbol: (item: PAndA) => item is PAndASymbol;
export interface CementSqueeze {
kind: 'cementSqueeze';
id: string;
start: number;
end: number;
/**
* Referenced Casing and Completion ids
*/
referenceIds: string[];
}
export declare const isCementSqueeze: (item: PAndA) => item is CementSqueeze;
export interface CementPlug {
kind: 'cementPlug';
id: string;
start: number;
end: number;
/**
* Referenced Casing, Completion ids
*/
referenceIds: string[];
}
export declare const isCementPlug: (item: PAndA) => item is CementSqueeze;
export type PAndA = PAndASymbol | CementSqueeze | CementPlug;
interface BaseCompletion {
id: string;
diameter: number;
start: number;
end: number;
}
export interface Screen extends BaseCompletion {
kind: 'screen';
}
export interface Tubing extends BaseCompletion {
kind: 'tubing';
}
export interface CompletionSymbol extends BaseCompletion {
kind: 'completionSymbol';
symbolKey: string;
}
export type Completion = Tubing | Screen | CompletionSymbol;
export declare const foldCompletion: <T>(fScreen: (obj: Screen) => T, fTubing: (obj: Tubing) => T, fSymbol: (obj: CompletionSymbol) => T) => (completion: Completion) => T;
export interface Cement {
kind: 'cement';
id: string;
/**
* Referenced Casing and Completion ids
*/
referenceIds: string[];
toc: number;
}
/**
* 'Open hole' and 'Open hole screen' are not included as they are not visualized and also not included in the ruleset
*/
export type PerforationSubKind = 'Perforation' | 'Open hole gravel pack' | 'Open hole frac pack' | 'Cased hole frac pack' | 'Cased hole gravel pack' | 'Cased hole fracturation';
export interface Perforation {
kind: 'perforation';
subKind: PerforationSubKind;
id: string;
start: number;
end: number;
/**
* is the perforation open or sealed?
*/
isOpen: boolean;
}
export declare const foldPerforationSubKind: <T>(options: {
Perforation: (kind: 'Perforation') => T;
OpenHoleGravelPack: (kind: 'Open hole gravel pack') => T;
OpenHoleFracPack: (kind: 'Open hole frac pack') => T;
CasedHoleGravelPack: (kind: 'Cased hole gravel pack') => T;
CasedHoleFracPack: (kind: 'Cased hole frac pack') => T;
CasedHoleFracturation: (kind: 'Cased hole fracturation') => T;
}, subKind: PerforationSubKind) => T;
export declare const shouldPerforationStartAtHoleDiameter: (perf: Perforation) => boolean;
export declare const shouldPerforationStartAtCasingDiameter: (perf: Perforation) => boolean;
export declare const hasPacking: (perf: Perforation) => boolean;
export declare function hasFracLines(perf: Perforation): boolean;
export declare function hasSpikes(perf: Perforation): boolean;
export declare function isSubkindCasedHoleGravelPack(perf: Perforation): boolean;
export declare function isSubKindPerforation(perf: Perforation): boolean;
export declare function isSubKindCasedHoleFracPack(perf: Perforation): boolean;
export declare function isOpenHoleFracPack(perf: Perforation): boolean;
export declare const isSubKindCasedHoleFracturation: (perf: Perforation) => boolean;
export declare const intersect: (a: Perforation, b: Perforation) => boolean;
export interface SchematicData {
holeSizes: HoleSize[];
casings: Casing[];
cements: Cement[];
completion: Completion[];
pAndA: PAndA[];
symbols: {
[key: string]: string;
};
perforations: Perforation[];
}
export interface InternalLayerOptions {
holeLayerId: string;
casingLayerId: string;
completionLayerId: string;
cementLayerId: string;
pAndALayerId: string;
perforationLayerId: string;
}
export declare const defaultInternalLayerOptions: (layerId: string) => InternalLayerOptions;
export interface HoleOptions {
firstColor: string;
secondColor: string;
lineColor: string;
}
export declare const defaultHoleOptions: HoleOptions;
export interface CasingShoeSize {
width: number;
length: number;
}
export interface WindowOptions {
dashColor: string;
dashLength: number;
spaceLength: number;
}
export interface CasingOptions {
solidColor: string;
lineColor: string;
shoeSize: CasingShoeSize;
windowOptions: WindowOptions;
}
export declare const defaultCasingOptions: CasingOptions;
export interface PerforationOptions {
stroke: string;
yellow: string;
grey: string;
red: string;
outline: string;
transparent: string;
spikeWidth: number;
spikeLength: number;
packingOpacity: number;
fracLineLength: number;
fracLineCurve: number;
scalingFactor: number;
}
export declare const defaultPerforationOptions: PerforationOptions;
export interface CementOptions {
firstColor: string;
secondColor: string;
scalingFactor: number;
}
export declare const defaultCementOptions: CementOptions;
export interface CementSqueezeOptions {
firstColor: string;
secondColor: string;
scalingFactor: number;
}
export declare const defaultCementSqueezeOptions: CementSqueezeOptions;
export interface ScreenOptions {
scalingFactor: number;
lineColor: string;
}
export declare const defaultScreenOptions: ScreenOptions;
export interface TubingOptions {
innerColor: string;
outerColor: string;
scalingFactor: number;
}
export declare const defaultTubingOptions: TubingOptions;
export interface CementPlugOptions {
firstColor: string;
secondColor: string;
scalingFactor: number;
}
export declare const defaultCementPlugOptions: CementPlugOptions;
export {};
//# sourceMappingURL=schematicInterfaces.d.ts.map