package org.verapdf.model.external;

import org.verapdf.model.baselayer.Object;
import java.util.List;

% Parent type for all external objects embedded into the PDF document
type External extends Object {
	
}

% Embedded ICC profile
type ICCProfile extends External {
	% value of the N key in the ICC profile stream dictionary
	property N: Integer;
	% a four-byte string identifying the device class of the profile (monitor, printer, scanner, abstract color space)
	property deviceClass: String;
	% a four-byte string identifying the device class of the profile (GRAY, RGB, CMYK, LAB)
	property colorSpace: String;
	% version of the ICC profile
	property version: Decimal;
	% true if the profile satisfies the corresponding ICC Specification
	property isValid: Boolean;
}

% Embedded ICC profile used for ICCBasec color spaces
type ICCInputProfile extends ICCProfile
{

}

% Embedded ICC profile used as a destination profile in the output intent dictionary
type ICCOutputProfile extends ICCProfile
{
	% subtype of the output profile
	property S: String;
}

% embedded font program
type FontProgram extends External {

}

% TrueType font program embedded into PDF document 
type TrueTypeFontProgram extends FontProgram {
	% true / false if the corresponding PDF Font is marked as symbolic / non-symbolic in its font dictionary
	property isSymbolic: Boolean;
	% number of cmap subtables in the font program
	property nrCmaps: Integer;
}

% embedded CMap file
type CMapFile extends External {

}