import { BaseElement } from '../shared/base';
/**
 * Variants of the `code` element type. Each value here maps 1:1 to a
 * Vue file under `src/elements/code/` via the engine's registry.
 *
 * The v2 portal does not ship a `Definitions/CardElements/CodeElement.ts`
 * — these styles are inferred from `Mod/v2/CardElements/Code/*.vue`
 * (GitCodeEditor, FileTree, PullRequestsList, BuildStatus, ChatMessage).
 */
export type CodeStyle = "git-editor" | "file-tree" | "pull-requests-list" | "build-status" | "chat-message";
export interface CodeElement extends BaseElement<`code.${CodeStyle}`> {
    name?: string | null;
    label?: string;
    /** Plugin / project context used by every code variant. */
    pluginPageId?: number | string;
    teamSlug?: string;
    /** Git branch context (git-editor, pull-requests-list, build-status). */
    branch?: string;
    /** Repository slug (`owner/repo`). */
    repository?: string;
    /** For `file-tree`: starting path within the repo. */
    rootPath?: string;
    /** For `chat-message`: the message payload to render. */
    message?: Record<string, unknown>;
    /** For `build-status`: build / job identifier. */
    buildId?: string | number;
    /** Optional fixed height (CSS length). */
    height?: string;
}
export declare const CodeElementDefaults: {
    readonly type: "code.git-editor";
    readonly height: "60vh";
    readonly columns: 12;
    readonly columnsSm: 12;
    readonly columnsMd: 12;
    readonly columnsLg: 12;
    readonly columnsXl: 12;
};
export declare const CodeElementMetadata: {
    readonly icon: "code";
    readonly displayLabel: "Code";
    readonly elementCategory: "code";
    readonly description: "Developer-oriented blocks: git editor, file tree, pull requests, build status, and chat messages.";
};
export declare const CodeElementEditConfig: {
    readonly label: {
        readonly type: "input.text";
        readonly defaultValue: "";
        readonly label: "Label";
        readonly columnsMd: 6;
        readonly columns: 12;
        readonly section: "configuration";
    };
    readonly name: {
        readonly type: "picker.data-model";
        readonly defaultValue: "";
        readonly label: "Name";
        readonly columns: 12;
        readonly section: "advanced";
    };
    readonly style: {
        readonly type: "option-select.select";
        readonly defaultValue: "git-editor";
        readonly label: "Code Block Style";
        readonly columns: 12;
        readonly section: "layout";
        readonly selectOptions: readonly [{
            readonly label: "Git Editor";
            readonly value: "git-editor";
        }, {
            readonly label: "File Tree";
            readonly value: "file-tree";
        }, {
            readonly label: "Pull Requests List";
            readonly value: "pull-requests-list";
        }, {
            readonly label: "Build Status";
            readonly value: "build-status";
        }, {
            readonly label: "Chat Message";
            readonly value: "chat-message";
        }];
    };
    readonly pluginPageId: {
        readonly type: "input.text";
        readonly contentType: "integer";
        readonly label: "Plugin Page ID";
        readonly columns: 6;
        readonly section: "configuration";
    };
    readonly teamSlug: {
        readonly type: "input.text";
        readonly label: "Team Slug";
        readonly columns: 6;
        readonly section: "configuration";
    };
    readonly repository: {
        readonly type: "input.text";
        readonly label: "Repository";
        readonly columns: 6;
        readonly section: "configuration";
        readonly conditionParams: [{
            readonly name: "style";
            readonly logic: "in-array";
            readonly value: readonly ["git-editor", "file-tree", "pull-requests-list", "build-status"];
        }];
    };
    readonly branch: {
        readonly type: "input.text";
        readonly label: "Branch";
        readonly columns: 6;
        readonly section: "configuration";
        readonly conditionParams: [{
            readonly name: "style";
            readonly logic: "in-array";
            readonly value: readonly ["git-editor", "pull-requests-list", "build-status"];
        }];
    };
    readonly rootPath: {
        readonly type: "input.text";
        readonly label: "Root Path";
        readonly columns: 6;
        readonly section: "configuration";
        readonly conditionParams: [{
            readonly name: "style";
            readonly logic: "==";
            readonly value: "file-tree";
        }];
    };
    readonly buildId: {
        readonly type: "input.text";
        readonly label: "Build ID";
        readonly columns: 6;
        readonly section: "configuration";
        readonly conditionParams: [{
            readonly name: "style";
            readonly logic: "==";
            readonly value: "build-status";
        }];
    };
    readonly height: {
        readonly type: "input.text";
        readonly label: "Height";
        readonly defaultValue: "60vh";
        readonly columns: 6;
        readonly section: "layout";
    };
};
export declare const CodeStyleMetadataMap: Partial<Record<CodeStyle, {
    displayLabel: string;
    description: string;
}>>;
//# sourceMappingURL=CodeElement.d.ts.map