import { ErrorCodes, RetSearchConstants, BeforeAfterLimit, phid } from './iGlobal'; export interface ColumnSearch { queryKey?: string; constraints?: { ids?: Array; phids?: Array; projects?: Array; }; order?: 'newest' | 'oldest'; } export interface prjectRetColumnSearchData extends RetSearchConstants { fields: { name: string; proxyPHID: phid; project: { id: number; phid: phid; name: string; }; dateCreated: number; dateModified: number; policy: { view: string; }; }; attachments: object; } export interface RetColumnSearch extends ErrorCodes { result: { data: Array; maps: object; query: { queryKey: string; }; cursor: { limit: number; after: string; before: string; order: string; }; }; } export interface projectEditTransactionsType { type: 'parent' | 'milestone' | 'space' | 'name' | 'description' | 'icon' | 'color' | 'slugs' | 'members.add' | 'members.remove' | 'members.set' | 'view' | 'edit' | 'join' | 'subtype' | 'mfa'; value: any; } export interface ProjectEdit { transactions: Array; objectIdentifier: number | string; } export interface ProjectQuery { ids: Array; names: Array; phids: Array; slugs: Array; icons: Array; colors: Array; status: 'status-any' | 'status-open' | 'status-closed' | 'status-active' | 'status-archived'; members: Array; limit: number; offset: number; } export interface RetProjectQuery extends ErrorCodes { result: { data: { [phid: string]: { id: string; phid: phid; name: string; profileImagePHID: phid; icon: string; color: string; members: Array; slugs: Array; dateCreated: string; dateModified: string; }; }; slugMap: Array; cursor: { limit: number; after: string; before: string; }; }; } export interface ProjectSearch extends BeforeAfterLimit { queryKey?: 'joined' | 'watching' | 'active' | 'all'; constraints?: { ids?: Array; phids?: Array; name?: string; slugs?: Array; members?: Array; watchers?: Array; isMilestone?: boolean; isRoot?: boolean; minDepth?: number; maxDepth?: number; subtypes?: Array; icons?: [ 'project' | 'tag' | 'policy' | 'group' | 'folder' | 'timeline' | 'goal' | 'release' | 'bugs' | 'cleanup' | 'umbrella' | 'communication' | 'organization' | 'infrastructure' | 'account' | 'experimental' ]; colors?: [ 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'indigo' | 'violet' | 'pink' | 'grey' | 'checkered' ]; parents?: Array; ancestors?: Array; query?: string; }; attachments?: { members?: boolean; watchers?: boolean; ancestors?: boolean; }; order?: 'id' | 'rank' | 'fulltext-created' | 'fulltext-modified' | 'name' | 'milestoneNumber' | 'status'; } export interface retProjectSearchData extends RetSearchConstants { fields: { name: string; slug: string; subtype: string; milestone: string; depth: number; parent: string; icon: { key: string; }; color: { key: string; }; spacePHID: phid; dateCreated: number; dateModified: number; policy: { view: string; }; description: string; }; attachments: object; } export interface RetProjectSearch extends ErrorCodes { result: { data: Array; maps: { slugMap: object; }; query: { queryKey: string; }; cursor: { limit: number; after: string; before: string; order: string; }; }; }