blob: f1923dd8b78ace5e0c3521c6cfc0fd507277e20d [file] [log] [blame]
export declare class Configuration {
readonly version: string;
readonly apiUrl: string;
constructor(version: string, apiUrl: string);
}
export declare class Product {
private _name;
private _price;
private _quantity;
constructor(name: string, price: number, quantity: number);
get name(): string;
set price(newPrice: number);
get price(): number;
set quantity(newQuantity: number);
get quantity(): number;
get totalPrice(): number;
}
export declare class User {
id: number;
protected username: string;
private email;
constructor(id: number,
username: string,
email: string);
greet(): string;
getEmail(): string;
}
export interface Shape {
}
export interface Shape2D extends Shape {
get perimeter(): number;
get area(): number;
readonly sides?: number;
}
export interface Shape3D extends Shape {
get volume(): number;
surfaceArea(): number;
}
export declare class Rectangle implements Shape2D {
length: number;
width: number;
sides: number;
constructor(length: number, width: number);
get area(): number;
get perimeter(): number;
}
export declare class Square extends Rectangle {
length: number;
constructor(length: number);
}
export declare class Circle implements Shape2D {
radius: number;
constructor(radius: number);
get area(): number;
get perimeter(): number;
}
export declare class Prism<S extends Shape2D> implements Shape3D {
readonly surface: S;
height: number;
constructor(surface: S, height: number);
get volume(): number;
surfaceArea(): number;
}
export declare class Pyramid<S extends Shape2D> implements Shape3D {
readonly surface: S;
height: number;
constructor(surface: S, height: number);
get volume(): number;
surfaceArea(): number;
}
export declare class Cylinder extends Prism<Circle> {
radius: number;
constructor(radius: number, height: number);
surfaceArea(): number;
}
export declare class Cuboid extends Prism<Rectangle> {
length: number;
width: number;
height: number;
constructor(length: number, width: number, height: number);
}
export declare class Cube extends Prism<Square> {
length: number;
constructor(length: number);
get volume(): number;
surfaceArea(): number;
}
export declare class Cone extends Pyramid<Circle> {
radius: number;
height: number;
constructor(radius: number, height: number);
surfaceArea(): number;
}
export declare class Sphere implements Shape3D {
radius: number;
constructor(radius: number);
get volume(): number;
surfaceArea(): number;
}
export declare class Hemi<S extends Shape3D> implements Shape3D {
readonly shape: S;
constructor(shape: S);
static prism<A extends Shape2D>(p: Prism<A>): Prism<A>;
get volume(): number;
surfaceArea(): number;
}
export type HemiSphere = Hemi<Sphere>;
export interface Point2D {
x: number;
y: number;
}
export interface Point3D {
x: number;
y: number;
z: number;
}
export declare const origin2D: Point2D;
export declare const origin3D: Point3D;
export interface Vector {
get magnitude(): number;
get directionAngle(): number;
}
export declare class Vector2D implements Vector {
x: number;
y: number;
constructor(x: number, y: number);
unit(): Vector2D;
get magnitude(): number;
get directionAngle(): number;
moveFrom(point: Point2D): Point2D;
static from(magnitude: number, at: number): Vector2D;
static fromPoints(start: Point2D, end: Point2D): Vector2D;
}
export declare class Vector3D implements Vector {
x: number;
y: number;
z: number;
constructor(x: number, y: number, z: number);
unit(): Vector3D;
get magnitude(): number;
get directionAngles(): DirectionAngles;
get directionAngle(): number;
moveFrom(point: Point3D): Point3D;
static from(magnitude: number, at: DirectionAngles): Vector3D;
static fromPoints(start: Point3D, end: Point3D): Vector3D;
}
export interface DirectionAngles {
alpha: number;
beta: number;
gamma: number;
}
export declare function drawCircle(center: Point2D, radius: number): Circle;
export declare function drawSquare(start: Point2D, length: number, angle?: number): Square;
export declare function drawSphere(center: Point3D): Sphere;
interface Epahs<TMetadata = any> {
readonly id: string;
name: string;
area(): number;
area(unit: 'cm2' | 'in2'): string;
onUpdate?(prev: Epahs<TMetadata>): void;
}
export declare class EpahsImpl<TMeta = any> implements Epahs<TMeta> {
readonly id: string;
name: string;
metadata?: TMeta;
constructor(name: string, type?: 'circle' | 'rectangle' | 'polygon');
onUpdate?(prev: Epahs<TMeta>): void;
constructor(config: Epahs<TMeta>);
get location(): string;
set location(value: string);
area(): number;
area(unit: 'cm2' | 'in2'): string;
static getById(id: string): EpahsImpl;
toString(): string;
}