interface INamedItem { id: string; name: string; } interface List extends INamedItem { cards: Card[]; } interface Board extends INamedItem { lists: List[]; } interface Card extends INamedItem { } export { Trellor, List, Board, Card }; /** * * ().boards * .get((Board[])) * .add("board name", (Board)) * .find("board name", (Board[])) * * ().board("boardId") * .get((Board)) * .remove() * .clear() * .lists * .get((List[])) * .add("list name", (List)) * .find("list name", (List[])) * * ().list("listId") * .clear() * .remove() * .card("cardId") * .remove() * .cards * .get((Card[])) * .add("card name", (Card)) * */ declare class Trellor { constructor(apiKey: string, apiToken: string); boards: BoardsActor; board: (id: string) => BoardActor; list: (id: string) => ListActor; } declare class BoardsActor { get: () => Promise; findAll: (name: string) => Promise; find: (name: string) => Promise; add: (name: string) => Promise; } declare class ListsActor { private boardId; constructor(boardId: string); get: () => Promise; add: (name: string) => Promise; } declare class BoardActor { private boardId; constructor(boardId: string); lists: ListsActor; get: () => Promise; remove: () => Promise; clear: () => Promise; } declare class ListActor { private listId; constructor(listId: string); clear: () => Promise; remove: () => Promise; card: (cardId: string) => CardActor; cards: CardsActor; } declare class CardsActor { private listId; constructor(listId: string); get: () => Promise; add: (name: string) => Promise; } declare class CardActor { private id; constructor(id: string); remove: () => Promise; }