import { Model, ModelProperty, Namespace, Program } from "@typespec/compiler"; import { RevisionDefinition } from "./revision-definition.js"; import { UpdateRestrictionsValue } from "../decorators/update-restrictions.js"; import { MsGraphAddressUrl, MsGraphPassthroughAddressUrl } from "./address-url.js"; export interface MsGraphModel { Kind: MsGraphModelKind; Name: string; IsAbstract: boolean; BaseType: string | undefined; IsOpenType: boolean; IsMedia: boolean; AgsAttributes: Record; Properties: MsGraphModelProperty[]; RevisionDefinition: RevisionDefinition | undefined; Description: string | undefined; KeyProperty: [string, ModelProperty] | undefined; AlternateKeys: AlternateKeyProperty[]; MediaTypes: string[]; IsPartial: boolean; RecordType?: string; } export declare enum MsGraphModelKind { Unknown = 0, Entity = 1, Complex = 2 } export interface AllowedValues { type: string; values: unknown[]; } export interface DeltaProperties { FilterProperties: string[] | undefined; ExpandProperties: string[] | undefined; } interface PropertyAttributes { Name: string; Description: string | undefined; PropertyTypeName: string; IsNullable: boolean; IsNavigation: boolean; IsEntityCollection: boolean; IsUrl?: boolean | undefined; AgsAttributes: Record; RevisionDefinition: RevisionDefinition | undefined; } export interface MsGraphStructuralProperty extends PropertyAttributes { IsComputed: boolean; IsImmutable: boolean; DefaultValue?: string; MaxLength?: number; SupportsLimitedCharset: boolean; AllowedValues: AllowedValues; Permission: "Read" | "Write" | null; } export interface MsGraphNavigationProperty extends PropertyAttributes { IsContained: boolean; IsCollection: boolean; IsAutoExpand: boolean; IsAutoExpandReferences: boolean; AddressUrl: MsGraphAddressUrl | undefined; AddressUrlMsa: MsGraphAddressUrl | undefined; PassthroughAddressUrl: MsGraphPassthroughAddressUrl | undefined; PassthroughAddressUrlMsa: MsGraphPassthroughAddressUrl | undefined; DeltaProperties: DeltaProperties | undefined; ReadRestrictions: boolean | undefined; InsertRestrictions: boolean | undefined; UpdateRestrictions: UpdateRestrictionsValue | undefined; DeleteRestrictions: boolean | undefined; } export interface MsGraphModelProperty extends MsGraphStructuralProperty, MsGraphNavigationProperty { } export interface AlternateKeyProperty { IsModel: boolean; ModelProperty: ModelProperty; } export declare function GetMsGraphModels(program: Program, models: Map, currentNamespace?: Namespace): Map; export {}; //# sourceMappingURL=model.d.ts.map