import * as plugins from '../plugins.js';
import * as interfaces from '../../dist_ts_interfaces/index.js';
export interface IDomainsState {
    providers: interfaces.data.IDnsProviderPublic[];
    domains: interfaces.data.IDomain[];
    records: interfaces.data.IDnsRecord[];
    /** id of the currently-selected domain in the DNS records subview. */
    selectedDomainId: string | null;
    isLoading: boolean;
    error: string | null;
    lastUpdated: number;
}
export declare const domainsStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IDomainsState>;
export declare const fetchDomainsAndProvidersAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, unknown>;
export declare const fetchDnsRecordsForDomainAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    domainId: string;
}>;
export declare const createDnsProviderAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    name: string;
    type: interfaces.data.TDnsProviderType;
    credentials: interfaces.data.TDnsProviderCredentials;
}>;
export declare const updateDnsProviderAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    id: string;
    name?: string;
    credentials?: interfaces.data.TDnsProviderCredentials;
}>;
export declare const deleteDnsProviderAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    id: string;
    force?: boolean;
}>;
export declare const testDnsProviderAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    id: string;
}>;
/** One-shot fetch for the import-domain modal. Does NOT modify state. */
export declare function fetchProviderDomains(providerId: string): Promise<{
    success: boolean;
    domains?: interfaces.data.IProviderDomainListing[];
    message?: string;
}>;
export declare const createDcrouterDomainAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    name: string;
    description?: string;
}>;
export declare const importDomainsFromProviderAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    providerId: string;
    domainNames: string[];
}>;
export declare const deleteDomainAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    id: string;
}>;
export declare const syncDomainAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    id: string;
}>;
export declare const migrateDomainAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    id: string;
    targetSource: interfaces.data.TDomainSource;
    targetProviderId?: string;
    deleteExistingProviderRecords?: boolean;
}>;
export declare const createDnsRecordAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    domainId: string;
    name: string;
    type: interfaces.data.TDnsRecordType;
    value: string;
    ttl?: number;
    proxied?: boolean;
}>;
export declare const updateDnsRecordAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    id: string;
    domainId: string;
    name?: string;
    value?: string;
    ttl?: number;
    proxied?: boolean;
}>;
export declare const deleteDnsRecordAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
    id: string;
    domainId: string;
}>;
