import { Writer } from "../Writer"; import { Serializable } from "../TerraScript"; export declare enum ResourceType { Resource = "Resource", DataSource = "DataSource" } export declare class ResourceDefinition { type: ResourceType; name: string; resourceName: string; resource: any; argsType?: TypeDefinition; attributesType?: TypeDefinition; types: TypeDefinition[]; constructor(type: ResourceType, name: string, resourceName: string, resource: any); } declare class TypeDefinition implements Serializable { name: string; properties: PropertyDefinition[]; baseType: string; type: Type; __serialize(writer: Writer): void; } export declare class PropertyDefinition implements Serializable { name: string; type: string; optional: boolean; __serialize(writer: Writer): void; } declare enum Type { Class = "class", Interface = "interface" } export declare function createPropertyDefinitionFromAttribute(resourceDefinition: ResourceDefinition, attributeName: string, attribute: any, isComputed: boolean): PropertyDefinition; export declare const createResourceDefinition: (type: ResourceType, resourceName: string, resource: any) => ResourceDefinition; export declare function toType(resourceDefinition: ResourceDefinition, type: any, name?: string): string; export {};