/**
 * Trello Node - Version 1
 * Discriminator: resource=board, operation=create
 */


interface Credentials {
  trelloApi: CredentialReference;
}

/** Create a new attachment for a card */
export type TrelloV1BoardCreateParams = {
  resource: 'board';
  operation: 'create';
/**
 * The name of the board
 */
    name?: string | Expression<string> | PlaceholderValue;
/**
 * The description of the board
 */
    description?: string | Expression<string> | PlaceholderValue;
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** Determines the type of card aging that should take place on the board if card aging is enabled
     * @default regular
     */
    prefs_cardAging?: 'pirate' | 'regular' | Expression<string>;
    /** The ID of a custom background or one of: blue, orange, green, red, purple, pink, lime, sky, grey
     * @default blue
     */
    prefs_background?: string | Expression<string> | PlaceholderValue;
    /** Who can comment on cards on this board
     * @default members
     */
    prefs_comments?: 'disabled' | 'members' | 'observers' | 'org' | 'public' | Expression<string>;
    /** Whether card covers are enabled
     * @default true
     */
    prefs_cardCovers?: boolean | Expression<boolean>;
    /** Determines what types of members can invite users to join
     * @default members
     */
    prefs_invitations?: 'admins' | 'members' | Expression<string>;
    /** To keep cards from the original board pass in the value cards
     * @default none
     */
    keepFromSource?: string | Expression<string> | PlaceholderValue;
    /** Whether to use the default set of labels
     * @default true
     */
    defaultLabels?: boolean | Expression<boolean>;
    /** Whether to add the default set of lists to a board(To Do, Doing, Done).It is ignored if idBoardSource is provided
     * @default true
     */
    defaultLists?: boolean | Expression<boolean>;
    /** The ID or name of the team the board should belong to
     */
    idOrganization?: string | Expression<string> | PlaceholderValue;
    /** The permissions level of the board
     * @default private
     */
    prefs_permissionLevel?: 'org' | 'private' | 'public' | Expression<string>;
    /** The Power-Ups that should be enabled on the new board
     * @default all
     */
    powerUps?: 'all' | 'calendar' | 'cardAging' | 'recap' | 'voting' | Expression<string>;
    /** Whether users can join the boards themselves or whether they have to be invited
     * @default true
     */
    prefs_selfJoin?: boolean | Expression<boolean>;
    /** The ID of a board to copy into the new board
     */
    idBoardSource?: string | Expression<string> | PlaceholderValue;
    /** Who can vote on this board
     * @default disabled
     */
    prefs_voting?: 'disabled' | 'members' | 'observers' | 'org' | 'public' | Expression<string>;
  };
};

export type TrelloV1BoardCreateOutput = {
  closed?: boolean;
  desc?: string;
  descData?: null;
  id?: string;
  idEnterprise?: null;
  idOrganization?: string;
  labelNames?: {
    black?: string;
    black_dark?: string;
    black_light?: string;
    blue?: string;
    blue_dark?: string;
    blue_light?: string;
    green?: string;
    green_dark?: string;
    green_light?: string;
    lime?: string;
    lime_dark?: string;
    lime_light?: string;
    orange?: string;
    orange_dark?: string;
    orange_light?: string;
    pink?: string;
    pink_dark?: string;
    pink_light?: string;
    purple?: string;
    purple_dark?: string;
    purple_light?: string;
    red?: string;
    red_dark?: string;
    red_light?: string;
    sky?: string;
    sky_dark?: string;
    sky_light?: string;
    yellow?: string;
    yellow_dark?: string;
    yellow_light?: string;
  };
  name?: string;
  pinned?: boolean;
  prefs?: {
    background?: string;
    backgroundBottomColor?: string;
    backgroundBrightness?: string;
    backgroundDarkImage?: null;
    backgroundTile?: boolean;
    backgroundTopColor?: string;
    calendarFeedEnabled?: boolean;
    canBeEnterprise?: boolean;
    canBeOrg?: boolean;
    canBePrivate?: boolean;
    canBePublic?: boolean;
    canInvite?: boolean;
    cardAging?: string;
    cardCounts?: boolean;
    cardCovers?: boolean;
    comments?: string;
    hideVotes?: boolean;
    invitations?: string;
    isTemplate?: boolean;
    permissionLevel?: string;
    selfJoin?: boolean;
    showCompleteStatus?: boolean;
    switcherViews?: Array<{
      enabled?: boolean;
      viewType?: string;
    }>;
    voting?: string;
  };
  shortUrl?: string;
  url?: string;
};

export type TrelloV1BoardCreateNode = {
  type: 'n8n-nodes-base.trello';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<TrelloV1BoardCreateParams>;
  output?: Items<TrelloV1BoardCreateOutput>;
};