Skip to content
SumOfficeSumOfficeSumOffice

DTO · api-view.ts

19 interfaces and 6 type aliases of shell-contract — display: inspector modes, rendering operations, text effects, and print view descriptors.

19 interfaces and 6 type aliases — display: inspector modes, rendering operations, text effects, and print view descriptors.

Contract module: api-view.ts.

TypeAliasDeclaration · api-view.ts

type InspectorMode = "print" | "paginate" | "report" | "review";

TypeAliasDeclaration · api-view.ts

type ShellDrawOpKind =
| "draw-text-line"
| "draw-line-number"
| "draw-table-cell-box"
| "draw-table-row-box"
| "draw-image-placeholder"
| "draw-paragraph-border-box"
| "draw-paragraph-shading-box"
| "draw-body-tracked-change-redline"
| "draw-body-tracked-change-balloon-bar"
| "draw-body-tracked-change-balloon-leader"
| "draw-review-comment-anchor"
| "draw-review-comment-surface"
| "draw-footnote-separator-line"
| "draw-endnote-separator-line"
| "draw-footnote-table-cell-box"
| "draw-footnote-table-row-box"
| "draw-shape-textbox"
| "draw-shape-rect"
| "draw-shape-ellipse"
| "draw-shape-round-rect"
| "draw-shape-triangle"
| "draw-shape-diamond"
| "draw-shape-pentagon"
| "draw-shape-hexagon"
| "draw-shape-parallelogram"
| "draw-shape-trapezoid"
| "draw-shape-plus"
| "draw-shape-star5"
| "draw-shape-can"
| "draw-shape-cube"
| "draw-shape-cloud"
| "draw-shape-flowchart-process"
| "draw-shape-flowchart-decision"
| "draw-shape-flowchart-data"
| "draw-shape-flowchart-terminator"
| "draw-shape-flowchart-document"
| "draw-shape-line"
| "draw-shape-left-arrow"
| "draw-shape-right-arrow"
| "draw-shape-up-arrow"
| "draw-shape-down-arrow"
| "draw-chart-column"
| "draw-chart-line"
| "draw-chart-pie"
| "draw-chart-error"
| "draw-embedded-preserved";

InterfaceDeclaration · api-view.ts

interface ShellDrawOp {
draw_index: number;
op_kind: ShellDrawOpKind;
source_line_location: string;
scene_x_milli_px: number;
scene_y_milli_px: number;
scene_box_width_milli_px: number;
scene_box_height_milli_px: number;
text_baseline_offset_milli_px?: number | null;
text: string;
base_direction?: "ltr" | "rtl" | null;
font_family_name?: string | null;
font_size_half_points?: number | null;
font_bold?: boolean | null;
font_italic?: boolean | null;
font_color_rgb?: string | null;
font_underline?: string | null;
font_underline_color_rgb?: string | null;
text_highlight_color?: string | null;
text_shading_color_rgb?: string | null;
font_strikethrough?: string | null;
font_vertical_align?: string | null;
font_small_caps?: boolean | null;
font_small_caps_size_half_points?: number | null;
font_character_spacing_twips?: number | null;
d5_ink_bbox_scale_x_per_mille?: number | null;
table_cell_fill_color_rgb?: string | null;
table_cell_shading_pattern?: string | null;
table_cell_shading_foreground_color_rgb?: string | null;
table_cell_borders?: ShellTableCellBorder[] | null;
review_comment_id?: number | null;
}

InterfaceDeclaration · api-view.ts

interface ShellTextEffectPaintPass {
pass_kind: "fill" | "stroke";
x_offset_milli_px: number;
y_offset_milli_px: number;
color_rgb: string;
alpha_per_mille: number;
line_width_milli_px: number;
}

InterfaceDeclaration · api-view.ts

interface ShellTextEffectDrawOp {
page_index: number;
target_draw_index: number;
source_line_location: string;
source_run_locations: string[];
text: string;
text_effect: "outline" | "shadow" | "emboss" | "imprint";
paint_passes: ShellTextEffectPaintPass[];
}

InterfaceDeclaration · api-view.ts

interface ShellPrintLineItem {
page_index: number;
section_index: number;
page_role: string;
paragraph_index: number;
paragraph_location: string;
line_index: number;
line_location: string;
text: string;
base_direction?: "ltr" | "rtl" | null;
width_milli_px: number;
keep_with_next?: boolean;
keep_lines_together?: boolean;
widow_control?: boolean;
page_break_before?: boolean;
drop_cap_kind?: string | null;
source_fragment_location: string;
scene_x_milli_px?: number | null;
scene_y_milli_px?: number | null;
scene_box_width_milli_px?: number | null;
scene_box_height_milli_px?: number | null;
text_baseline_offset_milli_px?: number | null;
d5_ink_bbox_scale_x_per_mille?: number | null;
font_family_name?: string | null;
font_size_half_points?: number | null;
font_bold?: boolean | null;
font_italic?: boolean | null;
font_color_rgb?: string | null;
font_underline?: string | null;
text_highlight_color?: string | null;
text_shading_color_rgb?: string | null;
font_strikethrough?: string | null;
font_vertical_align?: string | null;
fragments?: Array<{
run_location: string;
text: string;
font_family_name?: string | null;
font_size_half_points?: number | null;
font_bold?: boolean | null;
font_italic?: boolean | null;
font_color_rgb?: string | null;
font_underline?: string | null;
text_highlight_color?: string | null;
text_shading_color_rgb?: string | null;
font_strikethrough?: string | null;
font_vertical_align?: string | null;
}>;
}

InterfaceDeclaration · api-view.ts

interface ShellPrintPage {
page_index: number;
display_page_number: number;
section_index?: number;
page_role: string;
page_width_twips: number;
page_height_twips: number;
column_count: number;
column_space_twips?: number | null;
column_widths_twips: number[];
column_line_between: boolean;
column_right_to_left: boolean;
content_box_x_milli_px: number;
content_box_y_milli_px: number;
content_box_width_milli_px: number;
content_box_height_milli_px: number;
header_footer_live_band: {
text_left_milli_px: number;
header_text_top_milli_px: number;
footer_text_bottom_inset_milli_px: number;
header_band_top_milli_px: number;
footer_band_bottom_inset_milli_px: number;
band_height_milli_px: number;
line_height_milli_px: number;
retrospective_bar_left_milli_px: number;
font_family_name: string;
font_size_milli_px: number;
font_size_half_points: number;
font_bold: boolean;
font_italic: boolean;
};
scene_fingerprint: string;
screen_view: ShellPrintViewDescriptor;
pdf_view: ShellPrintViewDescriptor;
line_items?: ShellPrintLineItem[];
draw_ops: ShellDrawOp[];
support_markers?: ShellSupportMarker[];
}

InterfaceDeclaration · api-view.ts

interface ShellPrintViewDescriptor {
view_kind: "screen" | "pdf";
source_scene_fingerprint: string;
view_fingerprint: string;
page_width_twips: number;
page_height_twips: number;
column_count: number;
column_space_twips?: number | null;
column_widths_twips: number[];
column_line_between: boolean;
column_right_to_left: boolean;
content_box_x_milli_px: number;
content_box_y_milli_px: number;
content_box_width_milli_px: number;
content_box_height_milli_px: number;
draw_op_count: number;
deferred_lane_markers: string[];
}

InterfaceDeclaration · api-view.ts

interface ShellPrintSnapshot {
stage_id: string;
contract_mode: string;
fingerprint_mode: string;
document_fingerprint: string;
source_document_fingerprint?: string;
screen_view_fingerprint: string;
pdf_view_fingerprint: string;
page_count: number;
line_item_count: number;
draw_op_count: number;
text_effect_draw_ops?: ShellTextEffectDrawOp[];
pages: ShellPrintPage[];
support_markers?: ShellSupportMarker[];
scene_cache_limit?: number;
scene_cache_count?: number;
scene_cache_peak?: number;
hydration_payload_bytes?: number;
hydration_duration_ms?: number;
hydration_dropped_request_count?: number;
}

InterfaceDeclaration · api-view.ts

interface ShellPaginateFragment {
page_index: number;
section_index: number;
section_source_location?: string;
section_type?: string | null;
title_page_enabled?: boolean;
page_number_in_section?: number;
page_number_start?: number | null;
page_role: string;
block_range_start: number;
block_range_end: number;
closing_boundary_kind: string;
observed_breaks?: ShellObservedBreak[];
header_binding?: {
binding_kind: string;
relationship_id: string;
target_part_name: string;
source_location: string;
source_kind?: string;
source_section_index?: number;
} | null;
footer_binding?: {
binding_kind: string;
relationship_id: string;
target_part_name: string;
source_location: string;
source_kind?: string;
source_section_index?: number;
} | null;
support_markers?: ShellSupportMarker[];
column_count?: number;
column_space_twips?: number;
column_widths_twips?: number[];
line_numbering_restart_mode?: string | null;
line_numbering_count_by?: number | null;
line_numbering_start?: number | null;
}

InterfaceDeclaration · api-view.ts

interface ShellPaginateSnapshot {
stage_id: string;
mirror_margins_enabled?: boolean;
even_and_odd_headers_enabled?: boolean;
section_count: number;
explicit_break_count: number;
rendered_break_observation_count: number;
page_fragment_count: number;
hard_split_count: number;
sections?: Array<{
section_index: number;
source_location: string;
section_type?: string | null;
page_width_twips: number;
page_height_twips: number;
margin_top_twips?: number;
margin_right_twips?: number;
margin_bottom_twips?: number;
margin_left_twips?: number;
header_distance_twips?: number;
footer_distance_twips?: number;
gutter_twips?: number;
title_page_enabled?: boolean;
page_number_start?: number | null;
column_count?: number;
column_space_twips?: number;
column_widths_twips?: number[];
line_numbering_restart_mode?: string | null;
line_numbering_count_by?: number | null;
line_numbering_start?: number | null;
}>;
page_fragments: ShellPaginateFragment[];
support_markers?: ShellSupportMarker[];
}

InterfaceDeclaration · api-view.ts

interface CurrentDocumentTruthViewerData {
schema: "fastdoc.desktop-truth.current-document-viewer-data.v1";
docxPath: string;
repoRelativeDocxPath: string | null;
availability: string;
fixtureId: string | null;
fixturePath: string | null;
comparisonIndexPath: string;
packetJsonPath: string | null;
packetMarkdownPath: string | null;
indexEntry: Record<string, unknown> | null;
packet: Record<string, unknown> | null;
blockedStates: unknown[];
forbiddenClaims: string[];
productHeartbeat: Record<string, unknown> | null;
unavailableReason: string | null;
explicitUnclaimedAreas: string[];
}

TypeAliasDeclaration · api-view.ts

type EditorV0QuickPrintRangeMode = "all" | "current-page" | "selection" | "pages";

TypeAliasDeclaration · api-view.ts

type EditorV0QuickPrintDuplexMode = "one-sided" | "long-edge" | "short-edge";

TypeAliasDeclaration · api-view.ts

type EditorV0QuickPrintDispatchMode = "plan-only" | "native-print-test-dry-run" | "native-print-dialog" | "native-print";

InterfaceDeclaration · api-view.ts

interface EditorV0QuickPrintSelectionGeometry {
anchorXMilliPx: number;
anchorYMilliPx: number;
focusXMilliPx: number;
focusYMilliPx: number;
lineLocation: string;
}

InterfaceDeclaration · api-view.ts

interface EditorV0QuickPrintPlanRequest {
outputPath?: string | null;
rangeMode?: EditorV0QuickPrintRangeMode;
pageRange?: string | null;
copies?: number;
duplexMode?: EditorV0QuickPrintDuplexMode;
currentPageIndex?: number | null;
selectionGeometry?: EditorV0QuickPrintSelectionGeometry | null;
dispatchMode?: EditorV0QuickPrintDispatchMode | null;
deviceName?: string | null;
}

InterfaceDeclaration · api-view.ts

interface EditorV0QuickPrintNativeDispatchResult {
schema: "fastdoc.shell.editor-v0-quick-print-native-dispatch.v1";
requested: boolean;
dispatchMode: EditorV0QuickPrintDispatchMode;
dispatchState: "plan-only" | "native-print-test-dry-run-not-spooled" | "native-print-spooled" | "native-print-failed" | "native-print-dialog-completed" | "native-print-dialog-canceled" | "native-print-dialog-failed";
sharedScenePdfPath: string | null;
hiddenPrintWindowLoaded: boolean;
nativePrintApiCalled: boolean;
systemPrintDialogInvoked: boolean;
printerDriverSpoolExecuted: boolean;
printSuccess: boolean | null;
printCanceled: boolean;
failureReason: string | null;
sharedSceneOwner: "D5";
sourceLayoutContract: string | null;
sourceDocumentFingerprint: string | null;
sourceViewFingerprint: string | null;
pageSceneFingerprints: string[];
pageTextContracts: Record<string, unknown>[];
selectedPageNumbers: number[];
pageCount: number | null;
copies: number;
duplexMode: EditorV0QuickPrintDuplexMode;
}

InterfaceDeclaration · api-view.ts

interface EditorV0QuickPrintPlanResult {
prepared: boolean;
schema: "fastdoc.shell.editor-v0-quick-print-action-result.v1";
documentPath: string;
outputPath: string | null;
rangeMode: EditorV0QuickPrintRangeMode;
pageRange: string | null;
copies: number;
duplexMode: EditorV0QuickPrintDuplexMode;
duplexCapability: {
requestedMode: EditorV0QuickPrintDuplexMode;
planSupported: true;
nativeSupported: boolean;
state: "one-sided" | "plan-only-native-unsupported";
reason: string | null;
};
printerTarget: "a4-local-preview" | "system-default";
planPrinterTarget: "a4-local-preview";
planKind: string | null;
pageCount: number | null;
selectedPageNumbers: number[];
sheetCount: number | null;
dispatchFingerprint: string | null;
selectionGeometry: EditorV0QuickPrintSelectionGeometry | null;
dispatchMode: EditorV0QuickPrintDispatchMode;
nativePrintDispatch: EditorV0QuickPrintNativeDispatchResult;
plan: Record<string, unknown>;
claims: Record<string, unknown>;
}

InterfaceDeclaration · api-view.ts

interface EditorV0SectionPageMarginsCommandRequest {
topMarginTwips: number;
rightMarginTwips: number;
bottomMarginTwips: number;
leftMarginTwips: number;
gutterTwips?: number | null;
gutterPosition?: "left" | "top" | null;
mirrorMarginsEnabled?: boolean | null;
multiplePages?: "normal" | "mirror" | "two-pages-per-sheet" | "book-fold" | "reverse-book-fold";
pageOrientation?: "portrait" | "landscape";
paperSize?: "a3" | "a4" | "a5" | "letter" | "custom";
paperWidthTwips?: number;
paperHeightTwips?: number;
paperSourceFirst?: number | null;
paperSourceOther?: number | null;
sectionStart?: "nextPage" | "continuous" | "newColumn" | "evenPage" | "oddPage";
suppressEndnotes?: boolean;
differentOddEvenPages?: boolean;
differentFirstPage?: boolean;
headerDistanceTwips?: number;
footerDistanceTwips?: number;
verticalAlignment?: "top" | "center" | "both" | "bottom";
lineNumberingMode?: "none" | "continuous" | "restart-page" | "restart-section";
lineNumberStart?: number;
lineNumberCountBy?: number;
lineNumberDistanceTwips?: number;
paragraphIndex: number;
paragraphIndexes?: number[] | null;
outputKind?: "editor-v0-vertical-ruler-margin-writeback";
rulerDragRole?: "section-left-margin" | "section-right-margin" | "section-top-margin" | "section-bottom-margin" | null;
outputPath?: string | null;
reopenAfterWrite?: boolean;
}

InterfaceDeclaration · api-view.ts

interface EditorV0SectionPageMarginsCommandResult {
applied: boolean;
outputPath: string;
topMarginTwips: number;
rightMarginTwips: number;
bottomMarginTwips: number;
leftMarginTwips: number;
gutterTwips?: number | null;
gutterPosition?: "left" | "top" | null;
mirrorMarginsEnabled?: boolean | null;
pageSetupValues?: Record<string, unknown>;
paragraphIndex: number;
paragraphIndexes?: number[];
beforeTexts: string[];
afterTexts: string[];
}

TypeAliasDeclaration · api-view.ts

type EditorV0SectionPageSetupPreset =
| "paper-a3"
| "paper-a4"
| "paper-a5"
| "paper-letter"
| "orientation-portrait"
| "orientation-landscape"
| "margins-normal"
| "margins-narrow"
| "margins-wide"
| "margins-2cm"
| "margins-report"
| "margins-mirror"
| "margins-binding"
| "margins-binding-top"
| "margins-moderate"
| "columns-one"
| "columns-two"
| "columns-three"
| "columns-left"
| "columns-right"
| "columns-custom-widths";

InterfaceDeclaration · api-view.ts

interface EditorV0SectionPageSetupPresetRequest {
preset: EditorV0SectionPageSetupPreset;
paragraphIndex: number;
outputPath?: string | null;
reopenAfterWrite?: boolean;
columnWidthsTwips?: number[];
columnSpaceTwips?: number | null;
columnLineBetween?: boolean | null;
columnRightToLeft?: boolean | null;
selectedParagraphStartIndex?: number | null;
selectedParagraphEndIndex?: number | null;
}

InterfaceDeclaration · api-view.ts

interface EditorV0SectionPageSetupPresetResult {
applied: boolean;
outputPath: string;
preset: EditorV0SectionPageSetupPreset;
label: string;
paragraphIndex: number;
beforePageSetupState: Record<string, unknown>;
afterPageSetupState: Record<string, unknown> | null;
selectedAction: Record<string, unknown> | null;
mirrorMarginsEnabled?: boolean;
beforeTexts: string[];
afterTexts: string[];
popupWarningShown: false;
}

InterfaceDeclaration · api-view.ts

interface ShellImageRaster {
receipt_schema: "fastdoc.d38-raster-scene-receipt.v1";
session_id: string;
revision: number;
source_document_fingerprint: string;
requested_page_indexes: number[];
window_block_range_start?: number | null;
window_block_range_end?: number | null;
window_page_range_start: number;
window_page_range_end: number;
op_kind: "draw-image-raster";
page_index: number;
page_scene_fingerprint: string;
draw_index: number;
source_line_location: string;
relationship_id: string;
target_part_name: string;
content_type: "image/gif" | "image/jpeg" | "image/png";
package_fingerprint: string;
part_sha256: string;
byte_len: number;
data_base64: string;
intrinsic_width_px: number;
intrinsic_height_px: number;
crop_left?: number | null;
crop_top?: number | null;
crop_right?: number | null;
crop_bottom?: number | null;
rotation_degrees?: number | null;
flip_horizontal?: boolean | null;
flip_vertical?: boolean | null;
scene_x_milli_px: number;
scene_y_milli_px: number;
scene_box_width_milli_px: number;
scene_box_height_milli_px: number;
bytes_shared_with_draw_index?: number | null;
bytes_deferred?: boolean;
}

Documentation assistant

Answers are assembled from the documentation and may be inaccurate — check the sources.